STM32 CubeMX (第四步Freertos内存管理和CPU使用率)

这篇具有很好参考价值的文章主要介绍了STM32 CubeMX (第四步Freertos内存管理和CPU使用率)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

STM32 CubeMX



学习使用Freertos第四步
在 FreeRTOS 中,中断管理和软件定时:

  1. ·taskENTER_CRITICAL()·; 是一个函数在 FreeRTOS 中使用的,用于进入临界区(critical section)。在临界区内,中断会被禁用,这样可以确保在多任务环境下共享资源的安全性。你可以在需要保护共享资源的代码段中使用
  2. · taskENTER_CRITICAL()·; 来禁用中断,然后在临界区结束时使用 taskEXIT_CRITICAL();
    来重新启用中断。这样可以防止多个任务同时访问共享资源而导致的竞态条件。

一、STM32 CubeMX设置

时钟配置

STM32 CubeMX (第四步Freertos内存管理和CPU使用率),STM32 CubeMX,Rtos,stm32,单片机,嵌入式硬件

HAL时基选择TIM1(不要选择滴答定时器;滴答定时器留给OS系统做时基)

STM32 CubeMX (第四步Freertos内存管理和CPU使用率),STM32 CubeMX,Rtos,stm32,单片机,嵌入式硬件

使用STM32 CubeMX 库,配置Freertos

选择CMISS_V1接口就可以满足Freertos接口;且代码量比CMISS_V2小(CMISS_V2支持更多的RTOS接口,所以代码量比CMISS_V1多)
STM32 CubeMX (第四步Freertos内存管理和CPU使用率),STM32 CubeMX,Rtos,stm32,单片机,嵌入式硬件

使能定时器,计时0.1中断

STM32 CubeMX (第四步Freertos内存管理和CPU使用率),STM32 CubeMX,Rtos,stm32,单片机,嵌入式硬件

使能宏定义

STM32 CubeMX (第四步Freertos内存管理和CPU使用率),STM32 CubeMX,Rtos,stm32,单片机,嵌入式硬件

二、实验一,CPU使用率

设置时基
STM32 CubeMX (第四步Freertos内存管理和CPU使用率),STM32 CubeMX,Rtos,stm32,单片机,嵌入式硬件

配置代码

__weak void configureTimerForRunTimeStats(void)
{
 g_osRuntimeCounter=0;
}

__weak unsigned long getRunTimeCounterValue(void)
{
return g_osRuntimeCounter;
}

任务代码

void StartDefaultTask1(void const * argument)
{
  /* USER CODE BEGIN StartDefaultTask1 */
  /* Infinite loop */
  for(;;)
  {
		printf("Task01 \r\n");		// printf输出字符串
    osDelay(1000);
  }
  /* USER CODE END StartDefaultTask1 */
}

/* USER CODE BEGIN Header_StartTask02 */
/**
* @brief Function implementing the Task02 thread.
* @param argument: Not used
* @retval None
*/
/* USER CODE END Header_StartTask02 */
void StartTask02(void const * argument)
{
  /* USER CODE BEGIN StartTask02 */
  /* Infinite loop */
  for(;;)
  {
    printf("Task02 \r\n");		// printf输出字符串
    osDelay(1000);
  }
  /* USER CODE END StartTask02 */
}

/* USER CODE BEGIN Header_CpuStartTask03 */
/**
* @brief Function implementing the CpuTask03 thread.
* @param argument: Not used
* @retval None
*/
/* USER CODE END Header_CpuStartTask03 */
 uint8_t CPU_RunInfo[400];		            //保存任务运行时间信息
void CpuStartTask03(void const * argument)
{
  
  /* Infinite loop */
  for(;;)
  {
	  printf("  B:阻塞  R:就绪  D:删除  S:暂停  X:运行 \r\n");
    memset(CPU_RunInfo,0,400);				//信息缓冲区清零
    osThreadList(CPU_RunInfo);              //获取任务运行时间信息

    printf("---------------------------------------------\r\n");
    printf("Task      Task_Status Priority  Remaining_Stack Task_No\r\n");
    printf("%s", CPU_RunInfo);
    printf("---------------------------------------------\r\n");
    
//    memset(CPU_RunInfo,0,400);				//信息缓冲区清零
//    
//    vTaskGetRunTimeStats((char *)&CPU_RunInfo);
//    
//    printf("Task       Running_Count        Utilization\r\n");
//    printf("%s", CPU_RunInfo);
//    printf("---------------------------------------------\r\n\n");
    osDelay(1000);
  }
 
}

实验现象

STM32 CubeMX (第四步Freertos内存管理和CPU使用率),STM32 CubeMX,Rtos,stm32,单片机,嵌入式硬件文章来源地址https://www.toymoban.com/news/detail-660722.html

到了这里,关于STM32 CubeMX (第四步Freertos内存管理和CPU使用率)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于STM32CubeMX创建FreeRTOS—以STM32F429为例

    目录 1. 实验任务 2. 使用STM32CubeMX创建基础工程 2.1 使用STM32CubeMX创建项目 2.2 创建新项目 2.3 时钟设置 2.4 时钟配置树 2.5 修改时钟基准,打开串行调试 2.6 配置串口 2.7 配置状态指示灯 2.8 FreeRTOS配置 2.9 配置工程输出项 3. 代码编辑 3.1 printf重映射 3.1.1 使用ARMCC 5编译器时的print

    2024年01月22日
    浏览(35)
  • 搭建STM32F407的Freertos系统(基于STM32CubeMX)

           本人长期开发Linux、Windows上应用软件,一直以来MCU开发有所接触,但较少(最近项目需要,小公司么,都得会,被逼的),好在有STM32CubeMX这样工具,貌似就是我想要的工具。         本次demo目标立下:         1. 搭建或移植FreeRTOS到STM32上,毕竟对于长期在Linux环境

    2024年02月10日
    浏览(51)
  • STM32 CubeMX (Freertos任务:创建、删除、挂起、恢复)

    学习使用Freertos第一步 FreeRTOS 任务管理,您需要掌握以下几个关键函数: 1. xTaskCreate() :用于创建一个任务,需要指定任务函数、任务名称、任务栈大小和优先级等参数。 2. vTaskDelete() :用于删除一个任务,可以由任务自身或其他任务调用。 3. vTaskDelay() :用于使当前任务进

    2024年02月12日
    浏览(30)
  • STM32CubeMX+FATFS+FREERTOS读写U盘

    软件:STM32CubeMX V6.6.1 、 KEIL5 V5.29 硬件:STM32F429ZET6 USB_OTG_FS:PA11/PA12引脚 USART1:PA9/PA10,方便输出调试信息 1)SYS下载方式选择SW方式,因为要使用FREERTOS,提前将时钟源修改为TIM7(其他定时器也可以) 2) RCC设置,选择高速外部晶振HSE(根据具体硬件选择) 3)USART1设置,方便输出调

    2024年01月18日
    浏览(42)
  • 【STM32】利用CubeMX对FreeRTOS用按键控制任务

    对于FreeRTOS中的操作,最常用的就是创建、删除、暂停和恢复任务。 此次实验目标: 1.创建任务一:LED1每间隔1秒闪烁一次,并通过串口打印 2.创建任务二:LED2每间隔0.5秒闪烁一次,并通过串口打印 3.创建任务三:通过KEY1实现对任务一的创建和删除。 按键按下以后如果有任

    2024年02月13日
    浏览(56)
  • STM32cubemx对FreeRTOS的适配(工程模板配置)

    本篇文章将带大家使用STM32cubemx对FreeRTOS进行工程模板的配置。 1.开始工程的创建: 2.芯片型号选择: 3.修改时钟为TIM8: 在FreeRTOS中SYSTICK需要为FreeRTOS提供心跳,故这里选择TIM8替换SYNTICK。 4.配置RCC: 5.配置FreeRTOS: 6.开启串口方便调试和观察: 7.工程路径及编译器选择等:

    2024年02月07日
    浏览(43)
  • STM32基于HAL库和STM32CubeMX的实时操作系统FreeRtOS开发

    1、FreeRTOS RTOS是一类操作系统,µC/OS,FreeRTOS,RTX,RT-Thread 等这些都是RTOS 类的操作系统 FreeRTOS 是众多RTOS 类操作系统中的一种,FreeRTOS 十分的小巧,可以在资源有限的微控制器中运行,FreeRTOS 也不仅仅局限于在微控制器中使用。就单从文件数量上来看FreeRTOS 要比µC/OS 少得多

    2024年02月21日
    浏览(55)
  • STM32CubeMx学习FreeRTOS的绝对延时和相对延时

    在阻塞状态中 可以空闲出时间 来让低优先级的任务可以进行 有两种阻塞延时 一个是相对延时 也就是  这样的osDelay可以让在到这里的时候,延时500ms 也就是程序到这里才500ms 不记程序前面所用的时间 而还有一个绝对延时 绝对延时指的是 加上程序自己跑的时间 全部的一起

    2024年02月14日
    浏览(35)
  • STM32H743使用CubeMX配置Lwip、Freertos

    硬件:野火挑战者开发板STM32H743IIT6 软件版本: CubeMX 6.7.0 STM32CubeH7 Firmware Package V1.11.0 / 04-Nov-2022 原理图: 时钟树参数仅供参考 MPU配置需要查相关资料,一知半解 修改GPIO与硬件原理图对应,串口参数默认 参数配置与硬件对应 此处网络收发地址非常重要!!! 使能中断 串口

    2024年02月07日
    浏览(46)
  • 基于STM32CubeMx配置FreeRtos以及USB虚拟串口步骤详解

       Debug:推荐选择 Serial Wire (方便使用STLink打断点在线调试) 中间两项默认Disable就好 TimeBase Source:若需要配置FreeRtos则不能选择SysTick,随机选择一个TIM定时器即可,这里我选择TIM1定时器。 (解释:裸机的时钟源默认是SysTick,但是开启FreeRtos后,FreeRtos会占用SysTick,用于任

    2024年02月05日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包