笔记:移植xenomai到nuc972(2)

接下来的测试,出现了两个问题

第一个问题是demo程序启动不了,这是上一篇文章忘记说的事,启动不了的原因是权限问题,提示需要root,

但我是用busybox搭的文件系统,直接就是root,不存在权限问题,所以问题出在应用上,经过一番调试后发现,问题出在xenomai的应用库上,具体位置在xenomai/kernel/cobalt/posix/process.c,


 

static int gid_arg = -1;

修改成static int gid_arg=0;

这样就可以跳过权限的限制

第二个问题就是启动慢的问题,经过一番日志打印,追踪到是sys_mount加载过慢的问题,因为使用过几个实时系统都出现了同样问题,猜测是中断抢占了内核线程,导致读取yaffs文件的操作效率变低,

在内核源码的kernel/kthread.c里面找到了修改优先级的代码,然后把代码加在了init/main.c里面,

static int __ref kernel_init(void *unused)
{
     int ret;
     static const struct sched_param param = { .sched_priority = 0 };
     sched_setscheduler_nocheck(current, SCHED_FIFO, ¶m);
     kernel_init_freeable();
     sched_setscheduler_nocheck(current, SCHED_NORMAL, ¶m);

等加载完init函数再切换成普通优先级,这样系统启动速度又回来到了原来的2秒时代

你可能感兴趣的:(xenomai,linux,arm,笔记)