一个简单的点灯任何ledtask,看起来cpu占用率不高,但在这个任务起来后,整个系统的CPU占用率会变得很高。
经查,原因是这段code:
char cmd[64];
sprintf(cmd,"/opt/ipnc/gpiotst %d SetMode out",Pin);
system(cmd);
sprintf(cmd,"/opt/ipnc/gpiotst %d Set %d",Pin,Level);
system(cmd);
它会导致系统启动一个临时进程,用来设置GPIO,这样就导致CPU占用率很高。看起来linux启动临时进程,开销很大。