📄 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 + -