taskVarAdd 对同一变量使用了两次

发布于 2024-07-25 09:46:21 字数 301 浏览 5 评论 0原文

我使用 taskVarAdd() API 将全局结构添加到我的任务中。

但在某些情况下,使用 taskVarAdd() API 再次将相同的全局结构添加到相同的任务中。 [即,taskVarAdd() 从任务中针对同一变量调用两次]。

该结构将维护该任务的任务ID、消息队列ID。

我的问题:

  1. 如果我们在一个任务中为同一个变量调用两次 taskVarAdd() ,会出现什么行为?
  2. 第一个添加的struct变量是否会被第二个变量覆盖?{我感觉这个会被覆盖]

I have a global struct added to my task using taskVarAdd() API.

But during some scenarios, the same global struct is is added to the same task again using taskVarAdd() API. [i.e., taskVarAdd() is called twice from a task for a same variable].

This struct will maintain the taskID, message queue ids for that task.

My Questions:

  1. If we call the taskVarAdd() for the same variable twice inside a task, what will be the behavior?
  2. Whether the struct variable added first will be overwritten by the second variable?{I feel this will be overwritten]

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

如何视而不见 2024-08-01 09:46:21

最简单的方法是做一个简单的测试用例。
<代码>

int v1;
void tvl()
{
   v1 = 1;
   taskVarAdd(0, &v1);
   v1 = 2;
   taskVarAdd(0, &v1);
   v1 = 3;
   taskDelay(1);
   printf("Initial v1 = %d\n", v1);
   for(;;)
   {
     v1++;
     taskDelay(60);
     printf("v1 = %d\n", v1);
} }

运行测试代码会得到 v1 的以下值:

Initial v1 = 2
1 3 3 2 4 4 3 5 5 4...

使用单个 taskVarAdd 的相同代码给出的预期结果为 1 2 3 4 ...

PS:您没有指定 VxWorks 的版本,所以我所说的有效Vxworks 6.x

The easiest way is to do a simple test case.

int v1;
void tvl()
{
   v1 = 1;
   taskVarAdd(0, &v1);
   v1 = 2;
   taskVarAdd(0, &v1);
   v1 = 3;
   taskDelay(1);
   printf("Initial v1 = %d\n", v1);
   for(;;)
   {
     v1++;
     taskDelay(60);
     printf("v1 = %d\n", v1);
} }

Running the test code results in the following values for v1:

Initial v1 = 2
1 3 3 2 4 4 3 5 5 4...

The same code with a single taskVarAdd gives the expected result of 1 2 3 4 ...

PS: You didn't specify the version of VxWorks, so what I said is valid for Vxworks 6.x

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文