- 博客(9)
- 资源 (1)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 基于rosjava的Android ROS环境搭建心路历程
Android ROS基于rosjava的Android ROS环境搭建心路历程ROS环境非ROS包ROS包导入并编译ROS Android程序基于rosjava的Android ROS环境搭建心路历程因为比赛需要,不得不耗了半年时间在这上面,最后弄得也不是很通透,踩完各种坑,绝望中徘徊千百遍,只能说能用了。将遇到过的各种坑以及现在所理解的东西总结如下。官网教程:http://wiki.ro...
2019-08-22 21:16:20
1699
1
原创 WIFI报文头
WiFi 7(802.11be):EHT (Extremely High Throughput) HeaderWiFi 6(802.11ax): HE (High-Efficiency) HeaderWiFi 5(802.11ac): VHT (Very High Throughput) HeaderWiFi 4(802.11n): HT (High Throughput) Header
2024-08-09 15:13:36
356
原创 wifi中mcs值
典型的码率有 1/2、2/3、3/4、5/6 等。码率越高,错误检测和纠错能力越强,但实际的数据传输速率会降低。MCS(Modulation and Coding Scheme,调制和编码方案)值:表示数据传输速率的组合参数。它决定了数据的调制方式和编码效率,从而影响无线链路的传输速度。:通常使用如== BPSK、QPSK、16-QAM、64-QAM== 等不同类型的调制方式。调制方式越复杂,单位时间内的数据传输速率越高,但对信号质量的要求也越高。
2024-08-07 16:58:12
165
原创 内核态和用户态编程区别
编译器会把这个函数放在一个特殊的内存区域,当初始化完成后,内核可以释放这个区域,从而节省内存。: 函数标记为 __init 后,应该确保它仅在初始化时被调用一次,任何后续尝试在初始化之后再调用这个函数的行为将导致系统错误,因为该函数的代码可能已经被释放了。printk 是操作系统内核的一部分,它直接与内核的日志系统交互。在用户态中,进程没有权限直接访问内核数据结构和函数。内核态到用户态: 当操作系统完成系统调用时,会从内核态切换回用户态。内核态: 运行在操作系统核心的环境中,没有用户空间的隔离。
2024-07-30 10:33:04
213
原创 硬件缩写DMA
在没有DMA的系统中,每次数据传输都需要CPU的直接参与。这样一来,CPU需要执行大量的读写操作,效率较低。而有了DMA,对应的工作可以由DMA控制器来完成,CPU只需发起和结束DMA操作。是一种专用的硬件设备,用于在计算机系统中进行内存与外部设备之间或内存与内存之间的高速数据传输,而不需要CPU的干预。在此期间,CPU可以执行其他指令,不受数据传输影响。当传输完成后,DMA控制器向CPU发出中断信号,告知CPU传输已经完成。CPU配置DMA控制器,设定源地址、目的地址、数据传输大小和传输模式等参数。
2024-07-27 17:21:25
184
原创 A-MSDU和A-MPDU
可以认为是以太网帧,由IP层下发到MAC层。:将多个MSDU聚合成A-MSDU,A-MSDU+MacHeader = MPDU发送到phy层。将多个以太网帧集合在一起使用一个802.11帧头封装成一个MPDU。通常,AP从协议栈收到报文(MSDU)时,会打上Ethernet报文头,在通过射频口发送出去前,需要逐一将其转换成802.11报文格式。A-MSDU将若干个MSDU聚合到一起,封装为一个802.11报文发送,从而减少开销。
2024-07-26 16:12:28
173
原创 C语言的Linux内核函数virt_to_phys() nbuff_pull()
其中,phys_addr_t 通常在内核头文件中定义(例如 #include <linux/types.h>)。在大多数情况下,phys_addr_t 被定义为一个无符号整型,用于表示物理内存地址。它不能在用户空间中使用,因为用户空间程序无法直接访问物理内存。:操作系统将内存划分为内核空间和用户空间。用户态进程只能访问用户空间的地址,而内核态进程(或操作系统内核)可以访问整个地址空间。在某些32位系统上,它可能是一个32位的无符号整数,而在某些64位系统上,它可能是一个64位的无符号整数。
2024-07-23 17:05:28
289
原创 总结:
final: 修饰的变量、方法、类,不能被修改、重写、继承。static: 一个类可以调用另一个类里的变量、方法,而不用创建对象。abstact: 只有方法的声明,没有方法的实现,但子类必须重写抽象方法。不能用new实例化。继承:extends(单继承),子类可得到父类全部属性、方法。封装:private&amp;lt;default&amp;lt;protected&amp;lt;public.类的属性一般用...
2019-02-19 13:48:24
130
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人