⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fifo.c

📁 rtlinux下实时部分和非实时部分通讯的程序fifo
💻 C
字号:
#include <rtl.h>
#include <rtl_sync.h>
#include <time.h>
#include <rtl_fifo.h>

#define BUFSIZE 1024
char buf[BUFSIZE]="hongchunxia";


pthread_t thread;


void * start_routine(void *arg)
{
   struct sched_param p;
   
   int status;
   
   p . sched_priority = 1;
   pthread_setschedparam (pthread_self(), SCHED_FIFO, &p);

   pthread_make_periodic_np (pthread_self(), gethrtime(), 1000000);  //ns = 10ms

	status = rtf_put(0, buf, 1024);		//write as often as possible        rtl_printf("write to fifo is %s!\n",buf);
	if (status <= 0)			//1kB of data into rt_fifo
	  pthread_wait_np();			//if fifo is full: wait 10 ms

   return 0;
}

int init_module(void) {
   int ret;
   ret = rtf_create(0, 1024*1024);  //create a real time fifo of 1MB size   if (ret)   {     printk("failed to create fifo (%d)\n",ret);     return -1;   }   printk("create fifo (%d) success!\n",ret);
   
   return pthread_create (&thread, NULL, start_routine, 0);
}

void cleanup_module(void){
   printk("removing fifo now!\n");
   rtf_destroy(0);
   
   pthread_delete_np (thread);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -