Linux驱动--WIFI驱动-RTL8733BU
WIFI 蓝牙驱动场景需求:适配 rk3568 wifi蓝牙模块,模块型号为rtl8733bu目前在ubuntu20.04,测试成功 驱动代码驱动代码分2部分,一部分是wifi,一部分是蓝牙代码。驱动资料分享码为”1210”。 wifi代码源码地址:链接: https://pan.baidu.com/s/17waZR1c7Fgc1Tv3mDX1Mbw 驱动放入 kernel/linux-5.10/drivers/net/wireless/rockchip_wlan ,同时该目录下MakeFile 增加: 12obj-$(CONFIG_RTL8733BU) += rtl8733bu/ Kconfig添加: 12source "drivers/net/wireless/rockchip_wlan/rtl8733bu/Kconfig" 在 Linux_deconfig 中添加: 1CONFIG_RTL8733BU=y 如果没有deconfig文件,则需要make menuconfig,选择对应配置,然后保存。 ...
Linux驱动--触摸屏GT911适配
触摸屏驱动本文档使用驱动为gt9xx,使用I2c通信。 设备树配置通讯地址为0x14,挂载在i2c5总线上。中断引脚和复位引脚为gpio3的PC0和PC1,根据硬件方案修改。 12345678910111213141516&i2c5 { status = "okay"; /*********************** GT 方案**********************/ gt9xx: gt9xx@14 { status = "okay"; compatible = "goodix,gt9xx"; reg = <0x14>; touch-gpio = <&gpio3 RK_PC0 GPIO_ACTIVE_HIGH>; //中断IO reset-gpio = <&gpio3 RK_PC1 GPIO_ACTIVE_LOW>; //复位IO max-x = <1920>; max-y = <120...
通讯协议--CAN
通讯协议CAN 协议CAN有两种通信标准:高速CAN和低速CAN。高速CAN属于闭环总线,速率可以达到1Mbps,总线长度<40m,适用需要快速数据传输的环境,如汽车内部网络 低速CAN速率只能达到250kbps,属于开环总线,总线长度可达到1000m,适合于工业自动化和远程监控等场景。 CAN总线信号CAN总线上,信号表现为电压形式,通过CAN_H和CAN_L线上的电位差来表示CAN信号,它们之间的电压差决定了信号的状态。分为显性电平(dominant)和隐性电平(recessive)两种类型。具体表现如下: 显性电平(Dominant):在CAN协议中,显性电平表示为逻辑0。当总线上的电压差满足特定的范围时(例如1.5V至2.5V),则认为总线上的信号是显性电平。 隐性电平(Recessive):隐性电平则表示为逻辑1。如果CAN_H和CAN_L之间的电压差不在显性电平的范围内,则信号被认为是隐性电平。 CAN信号传输 graph LR A[CPU]--信号-->B[CAN控制器] B--逻辑电平-->C[CAN收发器] C--差分信号...
Linux系统--优化开机启动
开机启动优化开机启动优化是提高计算机启动速度和性能的重要步骤。以下是一些优化开机启动的策略和命令。 系统开机启动服务分析首先,使用系统分析工具来查看各服务的启动时间,并关闭那些不必要的服务 123456789# 打印各服务耗时systemd-analyze # 服务启动耗时从大到小排序 systemd-analyze blame # 查看拖累启动速度的致命链 systemd-analyze critical-chain 启动服务管理systemctl 是systemd 管理系统主命令 ,可以用来Start/Stop/Restart/Reload 服务,用于控制和查询服务状态 123456789101112131415161718192021222324252627282930# 启动服务systemctl start [service-name]# 停止服务systemctl stop [service-name]# 重启服务systemctl restart [service-name]# 重新加载服务systemctl reload [ser...
Linux驱动--WIFI驱动-RTL8822CU
WIFI 驱动场景需求:适配基于RK3568芯片,适配一款USB WiFi模块 型号选用:RTL8822cu最后字母代表工作方式,“S”为SDIO,“P”为pcie,“U”则为usb 代码环境:Liunx5.10 内核 该模块属于大功率的wifi模块,仅支持单模的wifi信号,不带蓝牙,通讯距离方面相对其他模块较好。 kernel 部分因为只要使用usb,所以只需要usb口,开启usb供电就行。内核部分也仅仅只需要编译相应驱动代码即可。 dts12345678910# 这是一个开启usb供电的gpio /*************WIFI 电源控制 **************/ gpio-keys { compatible = "gpio-keys"; pinctrl-names = "default"; pinctrl-0 = <&wifi_key>; gpios = <&gpio3 RK_PC4 GPIO_ACTIVE_LOW>; // 1016 label = "...
Git--diff和patch使用
Git_diff和patch使用Git 提供了两种补丁方案,一种是通过 git diff 生成的 .diff 文件,第二种是通过 git format-patch 生成的 .patch 文件。diff文件不会有commit信息。 git diff使用git diff 指令能够生成diff文件也可以指定生成patch文件 12345678git diff --cached 需要add 到本地,比较本地暂存区与上一版本的差异git diff (文件名)--cached 比较指定文件与上版本差异git diff HEAD^ -- ./>diff_sdk.patch 比较当前目录提交内容和上一提交版本差异输出到xxx.patch,若没add,则只显示已存在的文件修改git diff <tagname> > xxx.patch 比较当前与tag 上 差异输出到xxx git patch使用git format-patch 指令可以生成patch文件,通过commit信息生成patch文件 1234git format-patch -M master 当前分支所有超...
通讯协议--UART
通讯协议任何通讯都是需要有一个载体,通过载体分类,分为有线或者无线通讯。通讯方式也有同步和异步,同步是两个设备通过时钟信号进行同步,异步是两个设备通过数据信号进行同步。同步通信是阻塞的,异步通信是非阻塞的。常见同步通讯有I2C、SPI等,异步通讯有TCP、UDP等。 串口协议构成帧:数据帧,即数据帧由起始位、数据位、停止位、校验位组成。 空闲位:数据线在空闲状态的时候为逻辑“1”状态。起始位:当要传输数据的时候先将数据线拉低,表示开始数据传输。数据位:即要传输的数据,数据位数可选择 5~8 位,低位在前,先传输,高位最后传输。奇偶校验位:这是对数据中“1”的位数进行奇偶校验用的,可不使用。停止位:数据传输完成标志位,停止位的位数可以选择 1 位、1.5 位或 2 位高电平,一般都选择 1 位停止位。 波特率:波特率就是 UART 数据传输的速率,也就是每秒传输的数据位数。 UART和USART区别串口是有线通讯一种,也是最简单常用的一种。UART和USART都是单片机串口通讯协议。区别:USART:通用同步和异步收发器UART:通用异步收发器 USART在异步通信的时候,它与...
Linux工具--busctl使用
busctl 命令使用busctl 命令简介busctl 是一个用于 introspect 和 monitor D-Bus 总线的命令行工具。它提供了一组命令,可以用于查看总线上的对等体、监视消息交换、显示对象树、调用方法等操作。 busctl 命令的基本用法 list:显示总线上的所有对等体。 status:显示总线服务的进程信息和凭证。 monitor:监视消息交换。 capture:类似于 monitor,但将输出写入 pcapng 格式的文件。 tree:显示一个或多个服务的对象树。 introspect:显示指定对象的接口、方法、属性和信号。 call:调用方法并显示响应。 emit:发出信号。 get-property:检索一个或多个对象属性的当前值。 set-property:设置对象属性的当前值。 help:显示命令语法帮助。 busctl命令的示例用法busctl call: 12# 调用 org.freedesktop.systemd1.Unit 的 Restart 方法busctl call org.freedesktop.systemd1 /org/fr...
Linux--upower机制和使用
UPower机制什么是UPowerUPower是一个用于管理电源的工具,它是Linux桌面环境中的一个组件,负责处理电源管理相关的任务。UPower提供了守护进程、API和一组命令行工具,用于获取系统中关于电池、电源适配器等电源设备的信息,并提供相关的控制功能。 通过UPower,用户可以查询电源设备的状态、剩余电量、是否正在充电等信息。此外,UPower还可以监控电源设备的状态变化,例如当电源适配器被插入或拔出时,UPower会相应地更新电源状态信息。 UPower使用 upower –help查看帮助信息 --enumerate 枚举设备的对象路径123456-d, --dump 转储所有对象的所有参数-w, --wakeups 获取唤醒数据-m, --monitor 监视来自电源守护程序的活动--monitor-detail 详细监控-i, --show-info 显示对象路径信息-v, --version 打印客户端和守护程序的版本 upower -e查看当前电池相关的设备 12345# upower -e/org/freedesktop/UPower/devic...
过去的2023
已至岁末,回顾自己过去的这一年,还算平静。没有了野外研发的孤独落寞,也不用为凌晨发版本而焦虑,有了更多的时间做自己的事。 虽说是平静的一年,倒也发生了许多的事情。年初的某件事,改变了自己的生活节奏。“同心一人去,坐觉长安空”这种伤感持续了很久,让自己有种“摆烂”的状态。吃了很多外卖,做饭也变得很少了,没啥意思的生活。音乐节与新裤子,也没让我狂热起来,可能只有电玩城推币机闪光的时候,才能带来那么一丝刺激。期间很开心又认了一大哥,一个特别乐观和友善的人。 这一年,“人工智能”,“大模型”很火。由于经常逛国外网站,我算是接触ChatGPT比较早,平常也使用这类工具提升效率。起初带给我的是惊讶,随着深入了解,更多的是对未来的思考与不安。 平静的现状下,命运齿轮一直在转。由于AI的进步,许多国外顶尖公司都在进行改革,优化不少人,沿海地区也出现同样的情况。这是一个大趋势,也许在未来的几年,生活习惯都有可能被AI改变。 我一直有在想,“未来技术会不会代替人类?”直到前面和人去吃过一次饭,中间我问“服务员”,她穿着正式,谈吐得体。“为什么你们店里不能扫码点单,还用菜单呢?”她回答:“来这一般都是...













