ZYNQ-pbuf操作指南(二)

简介: ZYNQ-pbuf操作指南

pbuf_dechain


该函数将第一个pbuf与链中剩余的pbuf分离开。该函数不能在包队列上调用。

struct pbuf *
pbuf_dechain(struct pbuf *p)

image.png

pbuf_copy


该函数创建pbuf的一个PBUF_RAM类型的副本。该函数只会复制一个包,不会复制整个包队列。

err_t
pbuf_copy(struct pbuf *p_to, const struct pbuf *p_from)

image.png

pbuf_copy_partial


将数据包缓冲区的(部分)内容复制到应用程序提供的缓冲区。

u16_t
pbuf_copy_partial(const struct pbuf *buf, void *dataptr, u16_t len, u16_t offset)

image.png

pbuf_skip


在 pbuf 的开头跳过一些字节。

struct pbuf*
pbuf_skip(struct pbuf* in, u16_t in_offset, u16_t* out_offset)

image.png

pbuf_take


将应用程序提供的数据复制到 pbuf 中。该函数只能用于复制相当于buf->tot_len的数据。

err_t
pbuf_take(struct pbuf *buf, const void *dataptr, u16_t len)

image.png

pbuf_take_at


与 pbuf_take() 相同,但将数据放在偏移量处

err_t
pbuf_take_at(struct pbuf *buf, const void *dataptr, u16_t len, u16_t offset)

image.png

pbuf_coalesce


该函数将一个pbuf队列合并为一个单独的pbuf。

struct pbuf*
pbuf_coalesce(struct pbuf *p, pbuf_layer layer)

image.png

pbuf_get_at


从 pbuf 中的指定位置获取一个字节。

u8_t
pbuf_get_at(const struct pbuf* p, u16_t offset)

image.png

pbuf_try_get_at


从 pbuf 中的指定位置获取一个字节

int
pbuf_try_get_at(const struct pbuf* p, u16_t offset)

image.png

pbuf_put_at


将一个字节放到 pbuf 中的指定位置 。

void
pbuf_put_at(struct pbuf* p, u16_t offset, u8_t data)

image.png

pbuf_strstr


该函数在pbuf p中查找substr。但和strstr()函数不同,不会在遇到第一个’\0’时停止。

u16_t pbuf_strstr(struct pbuf* p, const char* substr)

image.png

pbuf_memcmp


将指定偏移量处的 pbuf 内容与内存 s2 进行比较,两者的长度均为 n。

u16_t
pbuf_memcmp(const struct pbuf* p, u16_t offset, const void* s2, u16_t n)

image.png

pbuf_memfind


该函数在pbuf p中查找出现的长度为mem_len的mem,查找位置从start_offest开始。

u16_t pbuf_memfind(struct pbuf* p, const void* mem, u16_t mem_len, u16_t start_offset)

image.png

目录
相关文章
|
存储
ZYNQ-pbuf操作指南(一)
ZYNQ-pbuf操作指南
549 0
ZYNQ-pbuf操作指南(一)
|
6月前
|
存储 芯片 SoC
ZYNQ程序固化
ZYNQ程序固化
|
6月前
|
传感器 开发工具 芯片
【ZYNQ】ZYNQ7000 XADC 及其驱动示例
【ZYNQ】ZYNQ7000 XADC 及其驱动示例
152 0
|
6月前
|
安全 测试技术
【ZYNQ】ZYNQ7000 全局定时器及其驱动示例
【ZYNQ】ZYNQ7000 全局定时器及其驱动示例
157 0
|
6月前
|
测试技术
【ZYNQ】ZYNQ7000 私有定时器及其驱动应用示例
【ZYNQ】ZYNQ7000 私有定时器及其驱动应用示例
142 0
|
6月前
|
测试技术 Perl
【ZYNQ】ZYNQ7000 UART 控制器及驱动应用示例
【ZYNQ】ZYNQ7000 UART 控制器及驱动应用示例
259 0
|
编解码 Linux
基于瑞芯微RV1109 Linux串口驱动调试心得(给正点原子DS100示波器点赞!)
基于瑞芯微RV1109 Linux串口驱动调试心得(给正点原子DS100示波器点赞!)
292 0
|
存储 安全 存储控制器
ZYNQ裸板:中断篇
中断对于单片机过来的我们来说,相对也算比较熟悉了,还是严谨一点从头开始说吧。中断是什么?是一种当满足要求的突发事件发生时通知处理器进行处理的信号。中断可以由硬件处理单元和外部设备产生,也可以由软件本身产生。对硬件来说,中断信号是一个由某个处理单元产生的异步信号,用来引起处理器的注意。对软件来说,中断还是一种异步事件,用来通知处理器需要改变代码的执行,当然,轮询所产生的中断的过程是同步的。
884 0
ZYNQ裸板:中断篇
|
存储 Linux API
ZYNQ裸板:串口篇
使用 PS 的时候,通常会添加 UART 控制器,用于打印信息和调试代码。除此之外, PS 在和外部设备通信时,也会经常使用串口进行通信。先从UART控制器开始讲起吧,从简单的测试再到工程实例。
890 0
ZYNQ裸板:串口篇
|
存储 编解码 芯片
ZYNQ裸板:LHB155304-RT篇
1553总线是一种指令/响应式串行总线标准,除了作为美军标在国外广泛应用于军用飞机坦克、船舶、卫星、导弹等领域,在国内已得到了广泛的应用。抗干扰能力强实时性好,且拥有着双冗余备份设计,数据传输极为可靠。就我个人认知来看,常见的实现形式一种是通过专用的接口协议芯片,相对比较简单集成度高;另一种是IP核,非常考验逻辑和软件设计的功底。此次工程选用了前者,LHB15530接口芯片,在不改变原有传输方式的前提下,突破了原有的1Mb/s的传输速率,可达4Mb/s,也能满足绝大部分应用场景。
470 0
ZYNQ裸板:LHB155304-RT篇