8.2isp2-EDK / XPS- sys_sleep()在XMK多线程操作中未返回正确的值。-Altera-Intel社区-FPGA CPLD-ChipDebug

8.2isp2-EDK / XPS- sys_sleep()在XMK多线程操作中未返回正确的值。

问题描述

我正在运行一个简单的xilkernel程序。我在shell_main中请求了1000ms的sys_sleep()。

我创建了一个比shell_main更高优先级的pthread。当我杀死这个pthread时,sys_sleep()不再返回1000ms。它只返回500毫秒。

解决/修复方法

此问题将在EDK 9.1i中修复。有关此工具发布之前的变通方法,请在timer.c文件中进行修改,如下所述。 ‘timer.c’位于以下位置:

<edk_install_dir> \ SW \ lib中\ BSP \ xilkernel_v3_00_a \ SRC \ SRC \ SYS

之前:

———–

int remove_tmr(pid_t pid)

{

int i;

for(i = 0; i <MAX_TMRS; i ++){

if(soft_tmrs [i] .pid == pid){

soft_tmrs [i] .pid = -1; //处理程序将以静默方式删除活动计时器列表中的计时器条目

打破;

}

}

}

后:

——–

int remove_tmr(pid_t pid)

{

int i;

for(i = 0; i <MAX_TMRS; i ++){

if(soft_tmrs [i] .pid == pid){

soft_tmrs [i] .pid = -1; //处理程序将以静默方式删除活动计时器列表中的计时器条目

nactive–;

打破;

}

}

}

请登录后发表评论

    没有回复内容