硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3666|回复: 6
收起左侧

[FreeRTOS] 关于:freertos中的任务1中的某个函数里定义的局部变量的值的疑问。

[复制链接]

41

主题

112

回帖

235

积分

高级会员

积分
235
发表于 2021-2-23 10:38:05 | 显示全部楼层 |阅读模式
freertos中的任务1中的某个函数里定义的局部变量
unsigned char abc=0;
abc =2;

在任务1被切换出后,再从其他任务2调度回任务1,
这个时候任务1的局部变量abc的值是重新被初始化成了0,还是2?

回复

使用道具 举报

334

主题

2032

回帖

3039

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3039
发表于 2021-2-23 11:14:27 | 显示全部楼层
还是2。 只要任务没有被人为终止/删除,它的局部变量一直都在的。
回复

使用道具 举报

41

主题

112

回帖

235

积分

高级会员

积分
235
 楼主| 发表于 2021-2-23 13:25:35 | 显示全部楼层
caicaptain2 发表于 2021-2-23 11:14
还是2。 只要任务没有被人为终止/删除,它的局部变量一直都在的。

那不相当于static定义的变量了?
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2021-2-24 17:09:45 | 显示全部楼层
发生任务切换时,这个任务函数的局部变量值保存在任务栈里,只要任务还存在,任务栈没被释放,这个局部变量就一直都在,是不是可以这么理解?
回复

使用道具 举报

41

主题

214

回帖

337

积分

高级会员

积分
337
发表于 2021-2-26 22:02:28 | 显示全部楼层
任务就是函数,函数不退出,局部变量都在栈里面,开心的待着。
回复

使用道具 举报

1

主题

15

回帖

18

积分

新手上路

积分
18
发表于 2022-3-11 13:42:41 | 显示全部楼层
bear_yh 发表于 2021-2-23 13:25
那不相当于static定义的变量了?

可以这么认为。
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2022-8-29 17:20:17 | 显示全部楼层
2,局部变量压到任务栈里面了。就是创建任务时定义的那个数组就是用来干这个事情的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-26 17:05 , Processed in 0.441091 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表