你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】STM32之FreeRTOS:(二)任务相关API函数

[复制链接]
STMCU小助手 发布时间:2022-3-10 21:37
一、任务创建、删除、挂起与恢复
. }5 ]% j6 s) w* l9 ]0 {
  1. 1、xTaskCreate()//动态方法创建任务$ b5 `# u0 q1 e& b  @
  2. 2、xTaskCreateStatic()//静态方法创建任务, \$ f6 Y4 U( Q  d
  3. 3、xTaskCreateRestricted()//创建一个MPU限制任务,相关内存用动态内存分配
    / S) W  ^9 X& a  }. `
  4. 4、xTaskDelete()//删除一个任务
复制代码

' o$ D% P6 ^7 C, x. @0 i二、任务其他相关API函数
+ |2 [3 l& p6 X2 m9 g0 T1、 获取系统任务数量
7 |' q9 x  Z+ H( U8 @: P
  1. uxTaskGetNumberOfTasks()
复制代码

. m  ~, n. r4 h1 E2、获取系统中任务状态, o) s' Q4 @8 W7 Q8 @
  1. uxTaskGetSystemState( TaskStatus_t * const pxTaskStatusArray, const UBaseType_t uxArraySize, uint32_t * const pulTotalRunTime )
复制代码

0 \! o: _! Y1 f通常要申请内存配合下面两个函数使用:, l* D4 ~5 n# f- u" @" x; B& g
  1. TaskStatus_t *StatusArray=pvPortMalloc(ArraySize*sizeof(TaskStatus_t));//申请内存( a1 w4 E3 ], B" i7 A7 S' ~

  2. 8 u7 M2 B3 C, \# D+ c- W7 S
  3. vPortFree(StatusArray);        //释放内存
复制代码

) m) V# K  k" `1 m3 X0 E3、获取某个任务信息
! L  D# D  Z& {; S0 a' ^. h2 l
  1. void vTaskGetInfo( TaskHandle_t xTask, TaskStatus_t *pxTaskStatus, BaseType_t xGetFreeStackSpace, eTaskState eState )
复制代码
8 r/ m4 Y  c# ^
4、根据任务名获取任务句柄# b: s% R# d' S) _# }7 B) V4 p
  1. TaskHandle=xTaskGetHandle("led0_task");//根据任务名获取任务句柄。
复制代码
: i3 w6 g' ~! U# V
5、获取任务信息
$ R" h2 {5 B6 P
  1. //获取LED0_Task的任务信息8 P8 s$ G" O* _# b- e; K$ K
  2. vTaskGetInfo((TaskHandle_t        )TaskHandle,                 //任务句柄) v% o; l/ I( m% x* [; _( k* Y
  3.                          (TaskStatus_t*        )&TaskStatus,                 //任务信息结构体
    % P  s, E; ?) l4 S  l6 N( m
  4.                          (BaseType_t        )pdTRUE,                        //允许统计任务堆栈历史最小剩余大小  ]% `1 Y& ^5 |8 S, O, K
  5.                      (eTaskState        )eInvalid);                        //函数自己获取任务运行壮态
复制代码
3 \$ b) m) z# H1 `
& q' O" P: m& N8 j' h7 n! {
6、获取任务的任务壮态, A; {/ N9 J% m
  1. TaskState=eTaskGetState(TaskHandle);//获取query_task任务的任务壮态
复制代码

' S: D! [) [7 E% Y7、获取所有任务的信息4 j2 Y# [2 [) w8 X
  1. vTaskList(InfoBuffer);         //获取所有任务的信息
复制代码
7 i6 G% i6 W: |( i
8、获取任务运行时间信息
  e; Z# M* v+ {0 `3 b
  1. vTaskGetRunTimeStats(RunTimeInfo);                //获取任务运行时间信息
复制代码
4 g; k$ u( A, S- N6 w; }) V
总结:1 {0 R5 p- O; u
以上是一些比较常用的任务相关的API函数。
* Y2 [2 v, V1 z, Z' o9 p3 s9 W2 a1 n: M% N4 I6 ?3 q+ `& k

- G$ Z0 f! O: w: k, o
赞 收藏 评论0 发布时间:2022-3-10 21:37

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版