代码改变世界

RTP affinity

  Jeff  阅读(635)  评论(0编辑  收藏  举报
以下代码证明: RTP affinity inherits from the task that created it. 创建一个RTP,代码:
1
2
3
4
5
6
7
8
#include "taskLib.h"
int main()
{
   while(1){
       taskDelay(1);
   }
    taskSuspend(taskIdSelf());
}
创建一个VIP,在usrAppInit.c中调用myroot(). myroot函数定义在文件taskcreate.c中,具体代码如下方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <vxworks.h>
#if defined(PRJ_BUILD)
#include "prjParams.h"
#endif /* defined PRJ_BUILD */
#include <stdio.h>
#include <rtplib.h>
#include "taskLib.h"
int task_parent;
RTP_ID rtpdemoid;
int entrycl();
char *argv1;
int result;
void myroot (void)
    {
    char * argv1[] = {"/romfs/demo_rtp.vxe","0",NULL};
     cpuset_t affinity;
     printf("1");
     task_parent = taskCreate("jeffchen",60,0,200,&entrycl,0,0,
         0,0,0,0,0,0,0,0);
     printf("2");
     if (task_parent == NULL)
     return (ERROR);               
     CPUSET_ZERO (affinity);
     CPUSET_SET (affinity, 2);    
     printf("8");
     if (taskCpuAffinitySet (task_parent, affinity) == ERROR)
     {
     printf("30");
     return (ERROR);
     }
     printf("4");
     result =taskActivate (task_parent);
     printf("%d", result);
     printf("5");
    }
 
int entrycl(){
     
    char * argv1[] = {"/romfs/demo_rtp.vxe","0",NULL};
    printf("6");
    if((rtpdemoid=rtpSpawn(argv1[0], argv1, NULL, 96, 0x5000, 0, 0))==
 NULL){
    };
     
    printf("7");
    while(1){
        taskDelay(100);
    }
return 0;
}
</rtplib.h></stdio.h></vxworks.h>
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
点击右上角即可分享
微信分享提示