硬汉嵌入式论坛

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

[RL-RTX] 请问不同任务间可以共享全局变量吗

[复制链接]

1

主题

0

回帖

3

积分

新手上路

积分
3
发表于 2022-5-6 08:50:21 | 显示全部楼层 |阅读模式
请问不同任务间可以共享全局变量吗,想在不同任务之间用全局变量来对做标志判断。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106578
QQ
发表于 2022-6-7 13:37:00 | 显示全部楼层
没问题,变量定义加上前缀__IO即可,目的是防止编译器优化,这样就可以一个任务里面写,其它任务都可以做读操作。
回复

使用道具 举报

2

主题

12

回帖

18

积分

新手上路

积分
18
发表于 2023-6-14 11:58:49 | 显示全部楼层
eric2013 发表于 2022-6-7 13:37
没问题,变量定义加上前缀__IO即可,目的是防止编译器优化,这样就可以一个任务里面写,其它任务都可以做读 ...

硬汉哥,举个例子,我用canfestival生成的文件,里边各个索引有大量的全局变量,我在RTOS其它任务中、中断中使用这些全局变量最优的方式有哪些呢,可以简单说几种方式吗,我自己去查找研究
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106578
QQ
发表于 2023-6-15 08:24:41 | 显示全部楼层
QWFaichixuegao 发表于 2023-6-14 11:58
硬汉哥,举个例子,我用canfestival生成的文件,里边各个索引有大量的全局变量,我在RTOS其它任务中、中 ...

那个中断,CAN中断吗,可以任务里面开关CAN中断。也可以中断里面不处理,发任务消息后,专门在任务里面处理。
回复

使用道具 举报

2

主题

12

回帖

18

积分

新手上路

积分
18
发表于 2023-6-15 09:24:09 | 显示全部楼层
eric2013 发表于 2023-6-15 08:24
那个中断,CAN中断吗,可以任务里面开关CAN中断。也可以中断里面不处理,发任务消息后,专门在任务里面处 ...

就是canfestival配置生成的文件中字典变量会由一个定时器中断周期的不停变更为其它节点PDO过来的值,然后我有一个task,task中周期将这些全局的字典变量拼成一串JSON格式。这种情况下我这个task的周期是远大于定时器中断更新全局变量的频率的,这种情况我task访问这些全局变量有什么比较好的方式吗
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106578
QQ
发表于 2023-6-16 11:04:46 | 显示全部楼层
QWFaichixuegao 发表于 2023-6-15 09:24
就是canfestival配置生成的文件中字典变量会由一个定时器中断周期的不停变更为其它节点PDO过来的值,然后 ...

这种情况下,你的JSON字符串拼接仅仅是对变量的读操作吧,如果是的话,变量仅需加个__IO, 防止编译器优化即可。任务里面不用做任何其它处理。
回复

使用道具 举报

2

主题

12

回帖

18

积分

新手上路

积分
18
发表于 2023-6-19 18:33:28 | 显示全部楼层
eric2013 发表于 2023-6-16 11:04
这种情况下,你的JSON字符串拼接仅仅是对变量的读操作吧,如果是的话,变量仅需加个__IO, 防止编译器优化 ...

感谢感谢,如果有写操作呢,赋值之类的,并且又很多任务都有赋值写入的情况
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 14:36 , Processed in 0.168371 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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