本节主要介绍我们开发过程中,WiFi常用的开发工具,内容主要介绍工具种类以及基本的使用方法,更多使用可以见后面章节。
上图来自 瑞昱半导体 (RealTek) 的 RTL8201F 系列网卡 PHY 芯片手册。按OSI 7层网络模型划分,网卡PHY 芯片(图中的RTL8201F)位于物理层,对应的软件层就是本文讨论的 PHY 驱动层;而 MAC 位于 数据链路层,也是通常软件上所说的网卡驱动层,它不是本文的重点,不做展开。另外,可通过 MDIO 接口对 PHY 芯片进行配置(如PHY芯片寄存器读写),而 PHY 和 MAC 通过 MII/RMII 进行数据传输。
在嵌入式系统里,以太网是一个基本的接口,既用于调试,也用于数据传输。所以在单板调试过程中,以太网是一个基本的任务。如果以太网工作正常,也可以说是一个重要的里程碑。 Xilinx MPSoC支持多个网卡,应用成熟,下面是常见的调试思路。
网卡(Network Interface Card,简称NIC),也称网络适配器,是电脑与局域网相互连接的设备。无论是普通电脑还是高端服务器,只要连接到局域网,就都需要安装一块网卡。如果有必要,一台电脑也可以同时安装两块或多块网卡。
NXP官方linux仓库地址为:https://github.com/Freescale/linux-fslc/tree/5.4-2.1.x-imx。
1)首先根据"snps,dwc3"进行dts和driver的匹配,执行dwc3_probe()
广播通信中发出广播报文的一方称为Advertiser,接收广播报文的一方称为Scanner,连接通信中发起连接的一方称为Mater,接受连接的一方称为Slave,这些设备角色并不是固定的,一个蓝牙设备可以根据需要在多个角色之间切换,也可以同时身兼多个角色。为了方便管理蓝牙设备的角色,在链路层使用状态机来标识蓝牙设备当前的状态,蓝牙设备角色的切换也就相当于状态机中状态的迁移,Bluetooth 5.2 链路层状态机如下:
通用WLAN驱动模块用于Direct-Attach和Off-load芯片组。 asf.ko,qdf.ko,ath_dfs.ko,ath_spectral.ko和umac.ko这些,对于Direct-Attach和Off-load芯片组都是需要的
可以看到PHY的数据是RJ45网络接口(网线口)穿过了的差分信号,而PHY作用就是将差分信号转为数字信号,这块内容不用深究,制造商都设计好了。那我们干什么呢?(主要是对phy芯片进行模式选择,比如工作速率,工作模式)
前篇博文LE States and Packets[1] 已经介绍了LE 设备在不同通信模式下承担不同的角色,为了方便管理蓝牙设备在多个角色间的切换,链路层使用了状态机来管理蓝牙当前的状态及该状态下支持的通信模式。同时,也介绍了BLE 链路层的两种基本报文格式,以及在不同物理信道上传输时PDU (Protocol Data Unit) 结构的差异。
复制一份imx_v6_v7_defconfig,这里我命名为dfos_mini_defconfig。
使用的 Eclipse C/C++ 来进行操作。 如果不懂如何利用Eclipse操作的话,推荐看这两篇博客介绍。 Eclipse 进行Linux远程开发 Eclipse 远程Debug调试C程序
在计算系统发育多样性及随机性(βMNTD)等指标的时候,同时需要OTU文件及系统进化树的文件。
高通5G平台SDX55支持5G独立组网(SA)和非独立组网(NSA)两种网络架构,同时兼容LTE和WCDMA制式,拥有更快的传输速度,更优秀的承载能力,以及更低的网络延时,可广泛应用于网关、工业监控、远程医疗、无人机、虚拟现实和沉浸式体验(VR和AR)、智慧能源、车联网、工业互联网、智慧教育、高清视频、智慧城市、家庭娱乐等多个领域。
在Linux系统中有几种用于管理无线网络接口的命令行工具。其中的一些可用于简单查看无线网络接口状态(无论是启动还是关闭,或者是否连接到任何网络),如iw,iwlist,ip,ifconfig等。 其中一些用于连接无线网络,其中包括:nmcli,是用于创建,显示,编辑,删除,启用和禁用网络连接以及控制和显示网络设备状态的命令行工具。 首先使用以下命令检查网络设备的名称。从该命令的输出中,设备名称/接口是wlp1s0,如图所示。 $ iw dev phy#0 Interface wlp1s0 ifindex
首先定义参考时钟。其中的psgtr_ref_clk_2 ,是SATA使用的125MHz的参考时钟。
在Xilinx的ZCU102和ZCU106单板设计中,使用了管脚PS_MODE1作为外部USB Phy的复位信号。在MPSoC的文档ug1085和ug1087中,关于PS_MODE1的信息比较少。下面是更详细的描述。
I.MX6UL/ULL 有两个网络接口 ENET1 和 ENET2,I.MX6U-ALPHA 开发板提供了这两个网络接口,其中 ENET1 和 ENET2 都使用 LAN8720A 作为 PHY 芯片。
使用设备地址和地址类型来标识设备;地址类型表示公共设备地址或随机设备地址。公共设备地址和随机设备地址的长度均为48位。
Main() ../hostapd/main.c + 552
2 在probe里 申请网络结构体net_device、对相关变量函数赋值,注册网络结构体net_device
有这么一个需求:需要远程访问内网的nas。然后现成的解决方案有蒲公英这个方案,但是个人版的话限了只能3个设备,因此找了半天,最后选择了功能类似的zerotier.
现在遇到这样一个问题,没有USB,甚至于USB都没有电压输出,检查电路,USB供电是由一个TPS2051BDBV来控制的,这个芯片又是USB3320C来控制的,说明这个芯片没有工作。经过一天的排查,最后终于找到原因了。是因为没有设置设备树。设备树这方面我并不是很懂,所以整理一下。 首先,先找到编译出来的设备树。文件是images/linux/system.dtb。 在这篇文章 《设备树(device tree)学习笔记》 找到了反向编译工具fdtdump,使用fdtdump工具将其反向编译。 结果就是这样的:
BlueScan是一款功能强大的蓝牙扫描器,广大研究人员可以使用BlueScan来扫描BR/LE设备、LMP、SDP、GATT以及相关的蓝牙漏洞。
系统发育推断(phylogenetic inference)的算法五花八门,从最简单的UPGMA法,到邻接法(neighbor joining)、最大简约法(maximum parsimony),再到复杂的的最大似然法(maximum likelihood)与贝叶斯推断法(Bayesian inference),每种方法都有不少可选择的实现工具。这些方法无一例外都遵循一个规律:越精确则速度越慢。而随着分析的数据越来越庞大,对于用户来说,需要寻找一个尽可能快速而且错误率可以容忍的算法是十分必要的。
Kali是一款常用于渗透测试的Linux发行版,集成了较多的安全工具。本文尝试使用Docker安装Kali,并进行Wifi的破解工作。
这个模块是 Asix PHY 的网络驱动程序。它是作为用 C 编写的现有驱动程序的替代方法提供的。这些功能是等效的。
在linux内核映射物理地址的简单代码。 使用request_mem_region和ioremap映射物理地址。 映射之后,可通过虚拟地址读写对应的寄存器。
硬件设备及镜像 主板为:Yuzuki Lizard V851S开发板 宿主机环境:ubuntu 22.04 SDK版本:Yuzukilizard的github上的Docker镜像 img为:github上Yuzukilizard释放的镜像:[01]v851s_linux_lizard_uart0_2022_12_29.img v851s_linux_lizard_uart0_2022_12_29.img
与蓝牙和 Wi-Fi 一样,超宽带 (UWB) 是一种使用无线电波进行通信的无线技术,通过在非常高的频率下运行并使用宽频谱,UWB 在准确性、无线连接的稳健性和安全性方面优于其他无线技术。
传输文件每次都插拔 SD 卡太麻烦了,还是使用网线传输文件比较快,借此机会讲述一下 通过 tftp下载 kernel 和 nfs 挂载文件系统
RK33999使用synopsys dwc3的USB3.0控制器IP。早期的初始化需要在两个模块中进行,一个在rockchip官方提供的驱动中初始化,位于drivers/usb/dwc3/dwc3-rockchip.c文件中,主要初始化和CPU紧密相关的内容,如时钟、复位、电源、extcon(用于USB模式切换),另一个在synopsys提供的驱动中初始化,位于drivers/usb/dwc3/core.c文件中,这部分和USB3.0控制器密切相关,如USB3.0控制器内部寄存器地址、USB3.0的PHY、中断等。只有两个模块都初始化完毕,USB3.0控制器才能正常工作。本节只分析USB驱动早期初始化部分。
首先的步骤,安装模型转换工具 下载Verisilicon_Tool_Acuity_Toolkit和Verisilicon_Tool_VivanteIDE,按照文档安装配置
头文件 1 #ifndef __SIMS__ 2 #define __SIMS__ 3 #include<stdio.h> 4 #include<stdlib.h> 5 #includ
Linux 内核是如何实现无线网络接口呢?数据包是通过怎样的方式被发送和接收呢? 刚开始工作接触 Linux 无线网络时,我曾迷失在浩瀚的基础代码中,寻找具有介绍性的材料来回答如上面提到的那些高层次的问题。 跟踪探索了一段时间的源代码后,我写下了这篇总结,希望在 Linux 无线网络的工作原理上,读者能从这篇文章获得一个具有帮助性的概览。
1、 硬件配置,通过电阻上下拉确定;6096的硬件配置不可以错,其在port status寄存器状态中有相应的寄存器位体现硬件配置的工作模式。
目录 学习目标 图片格式 BMP 组成 JPG GIF 介绍 代码 总结 ---- 学习目标 本节要学习的是使用单片机来显示图片,但是因为目前SD卡还没有图片,暂时做不了实验,等我把图片放到SD卡之后再把实验补上。 图片格式 BMP 全称BitMap,是Windows中的标准图像文件格式,后缀名为:“.bmp”。 采用位映射存储方式,除图像深度可选外,不做任何压缩。 图像深度可选:1、4、8、16、24、32bit。 BMP文件存储数据时,图像的扫描方式是按照从左到右、从上到小的顺
CPU用的是Armada-3720,内核是https://github.com/MarvellEmbeddedProcessors/linux-marvell 里面18.12版本,uboot使用的是https://github.com/MarvellEmbeddedProcessors/u-boot-marvell/tree/u-boot-2018.03-armada-18.12。两路网口,一路是RGMII模式(lan1),另外一路是SGMII模式(lan2)。最近发现有时系统起来后用PC去ping lan2会ping不通,phy可以正常识别,执行ifconfig down/up也可以看到正常的打印信息。
一般我们不需要从用户态得到进程虚拟地址对应的物理地址,因为一般来说用户进程是完全不关心物理地址的。
从硬件的角度看,以太网接口电路主要由 MAC(Media Access Control,MAC)控制器和物理层接口 PHY(Physical Layer,PHY)两大部分构成。如下图所示:
一般而言,我们把某个协议的实现代码称为协议栈(protocol stack),BLE协议栈就是实现低功耗蓝牙协议的代码,理解和掌握BLE协议是实现BLE协议栈的前提。在深入BLE协议栈各个组成部分之前,我们先看一下BLE协议栈整体架构。
Sniffle是一个基于使用TI CC1352/CC26x2硬件的蓝牙5和4.x LE嗅探器。
据此推算,貌似单一线路,网络传输速度也就1.5*(1/4*10^6) = 375M/bs
第一步: 编译路径执行make menucinfig和make ota_menucinfig中分别选中: (1)Allwinner > swupdate (2)Allwinner > swupdate > Swupdate Settings > General Configuration > MTD support (3)Allwinner > swupdate > Image Handlers > ubivol
死锁指两个或更多进程或线程因相互等待对方释放资源而互相阻塞,从而导致系统中所有的进程或线程都无法继续运行的情况。
SOM-XQ138基于TI OMAP-L138定点/浮点DSP C674x+ARM9处理器,双核主频456MHz,C6000 DSP + ARM设计的工业级核心板;
进程地址空间的隔离 是现代操作系统的一个显著特征。这也是区别于 “古代”操作系统 的显著特征。
领取专属 10元无门槛券
手把手带您无忧上云