指定了dmamonitor这个程序固定在cpu0上执行, 可以用top命令看到效果,按下Q退出top命令
#define _GNU_SOURCE
#include <sched.h>
void install_sigs(); // 初始化信号量
void sigusr(int sig); // 信号量回调函数
int dma_proc_init(); // 初始化DMA配置
int dma_proc_exit(); // 退出DMA配置
int main(int argc, char *argv[])
{
pid_t pid = -1;
FILE *fptr;
cpu_set_t mask;
printf("%s : main enter.\n", SELFNAME);
// 配置信号量
install_sigs();
pid = getpid();
CPU_ZERO(&mask);
CPU_SET(0, &mask);
if (sched_setaffinity(0, sizeof(mask), &mask) == -1)
{
printf("warning: could not set CPU affinity, continuing...\n");
}
/*chrisine 20160809 begin
int num_cpus;
num_cpus = sysconf(_SC_NPROCESSORS_CONF);//get the cpu nums//2
assert(num_cpus > 0);
printf("cpu num:%d\n", num_cpus);
chrisine 20160809 end*/