16-FreeRTOS任务应用函数(2)

简介: 16-FreeRTOS任务应用函数(2)
    uxTaskPriorityGet() 查询某个任务的优先级。vTaskPrioritySet() 改变某个任务的任务优先级。uxTaskGetSystemState() 获取系统中任务状态。vTaskGetInfo() 获取某个任务信息。xTaskGetApplicationTaskTag() 获取某个任务的标签(Tag)值。xTaskGetCurrentTaskHandle() 获取当前正在运行的任务的任务句柄。xTaskGetHandle() 根据任务名字查找某个任务的句柄xTaskGetIdleTaskHandle() 获取空闲任务的任务句柄。uxTaskGetStackHighWaterMark()获取任务的堆栈的历史剩余最小值,FreeRTOS 中叫做“高水位线”eTaskGetState() 获取某个任务的壮态,这个壮态是 eTaskState 类型。pcTaskGetName() 获取某个任务的任务名字。xTaskGetTickCount() 获取系统时间计数器值。xTaskGetTickCountFromISR() 在中断服务函数中获取时间计数器值xTaskGetSchedulerState() 获取任务调度器的壮态,开启或未开启。uxTaskGetNumberOfTasks() 获取当前系统中存在的任务数量。vTaskList()以一种表格的形式输出当前系统中所有任务的详细信息。vTaskGetRunTimeStats() 获取每个任务的运行时间。vTaskSetApplicationTaskTag() 设置任务标签(Tag)值。SetThreadLocalStoragePointer() 设置线程本地存储指针GetThreadLocalStoragePointer() 获取线程本地存储指针


    1-任务标签获取(xTaskGetApplicationTaskTag)


    1.1 函数说明

    TaskHookFunction_t xTaskGetApplicationTaskTag( TaskHandle_t xTaskGetApplicationTaskTagFromISR);

    TaskHookFunction_t xTaskGetApplicationTaskTagFromISR( TaskHandle_t xTask );

    configUSE_APPLICATION_TASK_TAG必须设置为1

    xTaskGetApplicationTaskTagFromISR是在中断服务中调用的另一个版本。


    1.2 参数描述

    xTask :正在查询任务的句柄。任务可以使用NULL作为参数值查询自己的标记值。


    1.3 用例

      /* In this example, an integer is set as the task tag value. */void vATask( void *pvParameters ){    /* Assign a tag value of 1 to the currently executing task.    The (void *) cast is used to prevent compiler warnings. */    vTaskSetApplicationTaskTag( NULL, ( void * ) 1 );
          for( ;; )    {        /* Rest of task code goes here. */    }}
      void vAFunction( void ){TaskHandle_t xHandle;int iReturnedTaskHandle;
         /* Create a task from the vATask() function, storing the handle to the   created task in the xTask variable. */
         /* Create the task. */   if( xTaskCreate(             vATask,         /* Pointer to the function that implements                                the task. */             "Demo task",    /* Text name given to the task. */             STACK_SIZE,     /* The size of the stack that should be created                                for the task.  This is defined in words, not                                bytes. */             NULL,           /* The task does not use the                              parameter. */             TASK_PRIORITY,  /* The priority to assign to the newly created                                task. */             &xHandle        /* The handle to the task being created will be                                placed in xHandle. */             ) == pdPASS )   {       /* The task was created successfully.  Delay for a short period to allow       the task to run. */       vTaskDelay( 100 );
             /* What tag value is assigned to the task?  The returned tag value is       stored in an integer, so cast to an integer to prevent compiler       warnings. */       iReturnedTaskHandle = ( int ) xTaskGetApplicationTaskTag( xHandle );   }}


      2- 当前任务句柄获取(xTaskGetCurrentTaskHandle)


      2.1 函数描述

      TaskHandle_t xTaskGetCurrentTaskHandle( void );

      INCLUDE_xTaskGetCurrentTaskHandle 必须设置为 1 才能使用此函数。


      2.2 函数描述

      Returns:

      当前正在运行(调用)任务的句柄。

      相关文章
      蓝桥杯之单片机学习(十八)——555定时器与频率测量
      蓝桥杯之单片机学习(十八)——555定时器与频率测量
      1342 0
      蓝桥杯之单片机学习(十八)——555定时器与频率测量
      |
      6月前
      |
      JavaScript 前端开发 中间件
      重新定义状态管理:Zustand 如何以极简之力征服复杂应用
      重新定义状态管理:Zustand 如何以极简之力征服复杂应用
      255 1
      |
      6月前
      |
      安全 网络虚拟化 数据安全/隐私保护
      配置小型网络WLAN基本业务示例
      本文介绍了通过AC与AP直连组网实现企业分支机构移动办公的WLAN基本业务配置方案。需求包括提供名为“WiFi”的无线网络,分配192.168.1.0/24网段IP地址给工作人员,采用直连二层组网方式,AC作为DHCP服务器,并使用隧道转发业务数据。配置步骤涵盖AP与AC间CAPWAP报文传输、DHCP服务设置、AP上线及WLAN业务参数配置等,最终确保STA成功接入无线网络“WiFi”。
      配置小型网络WLAN基本业务示例
      |
      弹性计算 Linux iOS开发
      Python 虚拟环境全解:轻松管理项目依赖
      本文详细介绍了 Python 虚拟环境的概念、创建和使用方法,包括 `virtualenv` 和 `venv` 的使用,以及最佳实践和注意事项。通过虚拟环境,你可以轻松管理不同项目的依赖关系,避免版本冲突,提升开发效率。
      696 3
      |
      前端开发 JavaScript 开发者
      React的useId,现在Vue3.5终于也有了!
      【9月更文挑战第22天】React 的 `useId` 功能已在 Vue 3.5 中引入,用于生成唯一 ID,提升开发效率,确保组件 ID 的一致性和增强应用的可访问性。开发者能更简便地管理唯一标识符,减少繁琐工作,同时保证在服务器和客户端渲染下的稳定性。这一改进使得 Vue 应用更加高效、易用和可靠。
      174 3
      |
      定位技术 API C#
      .NET开源、功能强大、跨平台的图表库
      .NET开源、功能强大、跨平台的图表库
      283 8
      |
      负载均衡 算法 应用服务中间件
      Nginx入门 -- 理解 Nginx 的请求处理流程
      Nginx入门 -- 理解 Nginx 的请求处理流程
      768 1
      |
      XML 前端开发 Android开发
      Android经典实战之Kotlin中实现圆角图片和圆形图片
      本文介绍两种实现圆角图像视图的方法。第一种是通过自定义Kotlin `AppCompatImageView`,重写`onDraw`方法使用`Canvas`和`Path`进行圆角剪裁。第二种利用Android Material库中的`ShapeableImageView`,简单配置即可实现圆角效果。两种方法均易于实现且提供动态调整圆角半径的功能。
      343 0
      |
      SQL 监控 Oracle
      Oracle SQL性能优化全面指南
      在数据库管理领域,Oracle SQL性能优化是确保数据库高效运行和数据查询速度的关键
      1551 6
      |
      缓存 负载均衡 应用服务中间件
      Nginx 代理管理器强势登场!轻松设置反向代理,为你的网络安全与高效护航,快来探索!
      【8月更文挑战第23天】Nginx 代理管理器(NPM)是一款强大的工具,用于简化反向代理的设置流程。反向代理能隐藏后端服务器的真实IP,提升安全性,实现负载均衡与缓存等功能。用户需先安装Nginx 代理管理器,然后通过其Web界面添加代理主机,指定代理名称、协议类型、服务器地址及端口等信息。对于HTTPS协议,还需上传SSL证书/密钥。完成设置后,可通过浏览器测试反向代理是否正常工作。Nginx 代理管理器还支持高级特性,如负载均衡、缓存及访问控制等。
      409 1