- 博客(202)
- 资源 (2)
- 收藏
- 关注
原创 网卡收发包过程
初始化注:初始化由网卡的驱动程序完成在内存中为DMA开辟一段连续空间(这段内存也被称为DMA内存区),存储PD(Packet Descriptor)数组, PD数组是给网卡中的DMA Engine使用的,1个PD对应网卡接收或发送的1个数据包。注:不同的设备,PD结构不同,但是大致都有状态、长度和buffer pointer(指向数据包)3个成员。初始化PD数组,状态为Empty,length为0DMA映射:在内存中再开辟多块内存(可以不连续)用来存放数据包,将这些内存块的物理地址赋值给PD的
2023-11-21 11:10:51
271
原创 RISC-V汇编
系统级编程(System-level programming)访问外设(Accessing peripherals)外设:连接到计算机的 输入/输出 设备外设的编址方法外设独立编址:使用特殊的ISA指令来访问外设。RISC-V不使用这种。内存统一编址:将外设和内存进行统一编址,使用load/store指令来访问外设
2023-10-28 10:52:17
166
原创 bootloader介绍
什么是bootloaderbootloader是处理器上电后执行的第一个程序boot:将硬件引导到正常工作的状态loader:加载操作系统内核到内存的指定位置现在bootloader的功能:增加开机显示、开机音乐、OTA升级、固件验证等功能常见的bootloader:uboot关于bootloder的一些认识bootloder的位置不固定。不同的处理器上电后的初始PC值不同。如X86处理器启动后将从地址0xFFFFFFF0处开始执行;有些ARM处理器是从0x0开始执行。bootload
2023-10-23 20:47:08
307
原创 Linux I/O多路复用
注:参考《LINUX系统编程 2.10》I/O多路复用:支持进程同时在多个文件描述符上阻塞I/O多路复用的过程:监听这些文件描述符,当没有文件描述符I/O时处于睡眠状态;当有一个文件描述符I/O就绪时进行通知,并告知是哪些文件描述符I/O就绪;在处理完毕后,继续监听。
2023-10-17 23:29:47
159
原创 centos7.4编译安装VPP 23.06
Centos7通过yum安装 llvm-toolset-10.0 或更高版本centos安装gcc高版本缺少sys/random.h
2023-08-02 15:36:03
312
原创 VPP编译安装及测试
测试环境:主机1(172.20.10.37/24) 和 主机2(172.20.10.38/24)各使用VPP接管10G网卡,两网卡通过光纤直连。(注:上述ip是在VPP网络下的):VPP Communication Library,VCL可以在不修改应用的情况下,使应用访问VPP网络。说明:VPP网络和内核网络是独立的(不通的),有两套路由和网络。下图是绑定成功后结果。
2023-07-25 16:05:26
1236
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人