fifo

java算法:FIFO队列

て烟熏妆下的殇ゞ 提交于 2020-02-14 21:59:02
java算法:FIFO队列 FIFO队列是一个ADT,由两个基本操作构成:插入(放入)一个新项,删除(得到)最早插入的项。 例1:FIFO队列ADT接口 Java代码 interface intQueue{ intQueue( int q); int empty(); void put( int q); int get(); } interface intQueue{ intQueue(int q); int empty(); void put(int q); int get(); } 使用数组或链表,在常数时间内实现FIFO队列ADT的get和put操作。 例2:FIFO队列的链表实现 Java代码 public class intQueue{ private class Node{ int item; Node next; Node( int item){ this .item = item; next = null ; } } private Node head, tail; intQueue( int max){ head = null ; tail = null ; } boolean empty(){ return (head == null ); } void put( int item){ Node t = tail; tail = new Node(item);

ADT队列/FIFO表

怎甘沉沦 提交于 2020-02-14 21:58:05
队列是一种特殊的表,只在表首进行删除,只在表尾进行插入,按照先进先出原则操作(First In First Out),又称为FIFO表; 队列的指针实现代码: #include<cstdio> #include<cstdlib> #include<algorithm> typedef struct node* link; typedef struct node { int element; link next; }Node; typedef struct aque* Queue; typedef struct aque { link front; //队首节点指针 link last; //队尾节点指针 }Aque; Queue QueueInit(Queue Q) { Q->front=Q->last=0; return Q; } int QueueEmpty(Queue Q) { return Q->front==0; } int QueueFull(Queue Q) { //这里个人认为通过指针实现的队列(在现阶段我的使用中)可以不需要判断队列空间是否已满; } int QueueFirst(Queue Q) { return Q->front->element; } int QueueLast(Queue Q) { return Q->last->element; }

BeagleBone Black UART software FIFO size?

守給你的承諾、 提交于 2020-02-04 07:01:59
问题 I'm developing a custom application on the BeagleBone Black that has to use the UART capabilities of the device via the Debian Linux that runs on the BBB, for reading big chunks of data. For reading from the UART I'm opening one of the /dev/ttyO0, /dev/ttyO1, etc. devices with the open() function in nonblocking mode. And then I'm trying to read from this port with the read(2) function: ssize_t read(int fd, void *buf, size_t count); I would like to know what is the biggest reasonable number

linux之间进程通信

扶醉桌前 提交于 2020-02-02 00:17:47
进程间通信方式: 同主机进程间数据交换机制: pipe(无名管道) / fifo(有名管道)/ message queue(消息队列)和共享内存。 必备基础: fork() 创建一个与之前完全一样的进程,这两个进程执行没有固定的先后顺序,哪个进程先执行要看系统的进程调度策略。 一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都 复制到新的新进程中,只有少数值与原来的进程的值不同。相当于克隆了一个自己。    vfork : 与fork用法相同,但是他和父进程共享同样的数据存储,因此无需完全复制父进程的地址空间。 // fork() study example 1#include <unistd.h> #include <stdio.h> int main () { pid_t fpid; //fpid表示fork函数返回的值 int count=0; // fork 会将这个变量存在两个不同的内存中,所以两次count的值都是 1 ,而不是 1,2 。 fpid=fork(); if (fpid < 0) printf("error in fork!"); else if (fpid == 0) { printf("i am the child process, my process id is %d、n",getpid(

Quartus II LPM使用指南-FIFO篇

梦想与她 提交于 2020-01-28 10:20:17
Quartus II LPM使用指南 FIFO篇 BY WG http://www.cnblogs.com/wg2011/ 目录 说明 - 2 - 摘要 - 3 - 第一章 FIFO配置全攻略 - 4 - 1.1如何配置自己需要的FIFO - 4 - 1.2输入输出端口 - 5 - 1.3时序要求 - 8 - 1.4输出状态标记和潜伏期 - 8 - 1.5避免亚稳态 - 9 - 1.6同步复位及异步复位的影响 - 9 - 1.7不同的输入输出位宽 - 10 - 1.8约束设置 - 10 - 第二章 设计实例 - 11 - 2.1设计实例概要 - 11 - 2.2系统仿真分析 - 11 - 2.2.1写操作 - 11 - 2.2.2读操作 - 12 - 2.2.3当DCFIFO被写满时 - 13 - 2.2.4完成ROM至DCFIFO的数据传递 - 13 - 2.2.5完成DCFIFO至RAM的数据传递 - 14 - 附录 FIFO配置界面: - 15 - 1 - 15 - 2 - 16 - 3 - 17 - 4 - 18 - 5 - 19 - 6 - 19 - 参考文献 - 21 - 说明 本文档根据 ALTERA 《SCFIFO and DCFIFO Megafunctions》一问整理而来。 笔者使用Quartus II 的版本及PC机操作系统版本为11.1 sp2 WIN7

Quartus II -Warning (10230):truncated value with size 32 to match size of target

喜欢而已 提交于 2020-01-28 04:06:35
Warning (10230): Verilog HDL assignment warning at top_fpga.v(319): truncated value with size 32 to match size of target (16) 警告(10230):Verilog HDL assignment Warning at top pga.v(319):大小为32的截断值以匹配目标大小(16) 因为没有指定位宽,所以系统提示默认为32位所以你将 fifo_cnt<= fifo_cnt + 1; 改为fifo_cnt<= fifo_cnt + 1'b1;就可以了。 来源: CSDN 作者: Steven&Aileen 链接: https://blog.csdn.net/qq_25144391/article/details/103800176

FIFO知识点小结

老子叫甜甜 提交于 2020-01-27 07:58:06
1. FIFO简介 FIFO是一种先进先出数据缓存器,它与普通存储器的区别是没有外部读写地址线,使用起来非常简单,缺点是只能顺序读写,而不能随机读写。 2. 使用场景 数据缓冲:也就是数据写入过快,并且间隔时间长,也就是突发写入。那么通过设置一定深度的FIFO,可以起到数据暂存的功能,且使得后续处理流程平滑。 时钟域的隔离:主要用异步FIFO。对于不同时钟域的数据传输,可以通过FIFO进行隔离,避免跨时钟域的数据传输带来的设计和约束上的复杂度。比如FIFO的一端是AD,另一端是PCI;AD的采集速率是16位100KSPS,每秒的数据量是1.6Mbps。而PCI总线的速度是33MHz,总线宽度是32位 用于不同宽度的数据接口。例如单片机是8位,DSP是16。 3. 分类 同步FIFO:指读时钟和写时钟是同一个时钟 异步FIFO:指读写时钟是不同的时钟。 4. FIFO的常见参数 FIFO的宽度:即FIFO一次读写操作的数据位; FIFO的深度:指的是FIFO可以存储多少个N位的数据(如果宽度为N)。 满标志:FIFO已满或将要满时由FIFO的状态电路送出的一个信号,以阻止FIFO的写操作继续向FIFO中写数据而造成溢出(overflow)。 空标志:FIFO已空或将要空时由FIFO的状态电路送出的一个信号,以阻止FIFO的读操作继续从FIFO中读出数据而造成无效数据的读出

九章算法 基础 Lecture 4 BFS

∥☆過路亽.° 提交于 2020-01-27 06:58:58
BFS 什么时候使用BFS 图的遍历 traversal in graph 1.1 层级遍历 level order traversal 1.2 由点及面 connected component 1.3 拓扑排序 topological sorting 最短路径 shortest path in simple graph 2.1 仅限简单图求最短路径 2.2 即,途中每条边长度都是 1,且没有方向 最短路径问题可以用BFS或者DP解决 最长路径问题可以用DFS或者DP解决 BFS还有一个东西很重要就是是否需要分层遍历,如果需要分层遍历,需要添加一行代码同时添加一个 for loop。比如说例题 Zombie in Matrix, 例题 Knight shortest path 补充知识 BFS采用 FIFO Queue 实现,DFS采用 Stack 实现。 在JAVA中,Queue 是一个接口,具体实现可以采用LinkedList. LinkedList API remove(), Item, Retrieves and removes the head (first element) of this list. size(), int, Returns the number of elements in this list isEmpty(), boolean, Returns

linux netcat命令

心不动则不痛 提交于 2020-01-26 00:38:37
netcat是网络工具中的“ 瑞士军刀” ,它能通过TCP和UDP在网络中读写数据。通过与其他工具结合和重定向,你可以在脚本中以多种方式使用它。使用netcat命令所能完成的事情令人惊讶。 netcat所做的就是在两台电脑之间建立链接并返回两个数据流, 在这之后所能做的事就看你的想像力了。你能建立一个服务器,传输文件,与朋友聊天,传输流媒体或者用它作为其它协议的独立客户端。 -a 显示所有socket,包括正在监听的。 netstat –apn |grep 进程名 查看所有的进程和端口使用情况。发现下面的进程列表,其中最后一栏是PID/Program name 下面是一些使用netcat的例子. [A(172.31.100.7) B(172.31.100.23)] Linux netcat 命令实例: 1,端口扫描 端口扫描经常被系统管理员和黑客用来发现在一些机器上开放端口,帮助他们识别系统中的漏洞。 $nc -z -v -n 172.31.100.7 21-25 可以运行在TCP或者UDP模式,默认是TCP,-u参数调整为udp. z 参数告诉netcat使用0 IO,指的是一旦连接关闭,不进行数据交换(译者注:这里翻译不准,如有其它更好的,请指出) v 参数指使用冗余选项(译者注:即详细输出) n 参数告诉netcat 不要使用DNS反向查询IP地址的域名

ARM裸编程系列---UART

久未见 提交于 2020-01-25 11:52:39
S5PV210 UART说明 通用异步收发器缩写UART,这是UNIVERSAL ASYNCHRONOUS RECEIVER AND TRANSMITTER。它被用来传送串行数据。当发送数据,CPU将并行数据写入UART,UART依照一定的格式在一根电线上串行发出;接收数据 时。UART检測还有一根电线的信号,将串行收集在缓冲区中。CPU就可以读取UART获得这些数据。 在S5PV210中。UART提供了4对独立的异步串口I/Oport,有4个独立的通道,每个通道能够工作于DMA模式或者中断模式。当中,通道0有 256byte的的发送FIFO和256byte的接收FIFO,通道1有64byte的的发送FIFO和64byte的接收FIFO,而通道2和3仅仅有 16byte的的发送FIFO和16byte的接收FIFO。 S5PV210的uart结构图例如以下: UART使用标准的TTL/CMCOS逻辑电平来表示数据,为了增强数据抗干扰能力和提高传输长度,通常将TTL/CMOS逻辑电平转换为RS-232逻辑电平,查看原理图可知Mini210S使用的是MAX3232SOP芯片,使用的是TX0和DX0: 搜索“XuTXD0”,可知: 通过设置UART相关寄存器。我们就能够驱动UART工作,达到发送和接收字符的目的。 样例: int main() { char c; uart_init();