FreeRTOS源码源码阅读之Systick的关联记录

逻辑梳理

主题逻辑

在这里插入图片描述

MX_FREERTOS_Init

做资源的准备和初始化
void MX_FREERTOS_Init(void) {
  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* USER CODE BEGIN RTOS_MUTEX */
  /* add mutexes, ... */
  /* USER CODE END RTOS_MUTEX */

  /* USER CODE BEGIN RTOS_SEMAPHORES */
  /* add semaphores, ... */
  /* USER CODE END RTOS_SEMAPHORES */

  /* USER CODE BEGIN RTOS_TIMERS */
  /* start timers, add new ones, ... */
  /* USER CODE END RTOS_TIMERS */

  /* USER CODE BEGIN RTOS_QUEUES */
  /* add queues, ... */
  /* USER CODE END RTOS_QUEUES */
  /* USER CODE BEGIN RTOS_THREADS */
  /* add threads, ... */
  /* USER CODE END RTOS_THREADS */

}

osKernelStart

FreeRTOS源码源码阅读之Systick的关联记录_第1张图片

vTaskStartScheduler(实际逻辑执行处)

  1. 静态任务
    FreeRTOS源码源码阅读之Systick的关联记录_第2张图片
  2. 定时器任务
    FreeRTOS源码源码阅读之Systick的关联记录_第3张图片3. 核心逻辑(软件和硬件外设接口的对接)
    FreeRTOS源码源码阅读之Systick的关联记录_第4张图片

xPortStartScheduler(核心逻辑)

FreeRTOS源码源码阅读之Systick的关联记录_第5张图片
FreeRTOS源码源码阅读之Systick的关联记录_第6张图片

vPortSetupTimerInterrupt(Systick配置和中断开启的地方)

FreeRTOS源码源码阅读之Systick的关联记录_第7张图片

验证

FreeRTOS源码源码阅读之Systick的关联记录_第8张图片FreeRTOS源码源码阅读之Systick的关联记录_第9张图片

你可能感兴趣的:(HAL源码,stm32)