自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

原创 ubuntu根文件系统软件部署

在 /etc/systemed/system/ 或 /lib/systemed/system/ 下添加服务运行指定脚本。脚本:运行可执行二进制文件,路径一般:/usr/bin 、/usr/local/bin。apt download upower 下载安装包upower。与环境无关时用qmeu仿真技术。根据依赖关系解压安装包包。

2025-05-13 10:08:30 117

原创 编译android遇到问题总结

或者其他值,增大space,基本上就OK了。没有安装 libncurses5。交换内存空间不足,增大交换内存。

2025-05-07 09:08:07 155

原创 git 命令集

创建完成后,复制仓库的 HTTPS 或 SSH URL(如 https://github.com/yourname/my-project.git)。输入仓库名称(如 my-project),不要勾选 “Initialize with README”(保持空仓库)。完成后,你的项目已上传到远程仓库!拉取完成后,你的本地文件夹已与远程仓库同步!登录你的账号,点击 New Repository。克隆仓库到指定文件夹。

2025-04-25 14:02:20 569

原创 4G/5G模组----概念+驱动+调试

功能: 提供 USB 串口设备的支持,使设备表现为虚拟串口。​用途: 广泛用于调制解调器、GPS 接收器等设备,允许通过标准串口接口进行通信。​。

2025-04-13 01:14:43 1422

原创 udev规则实例:监听usb插拔事件并做出相应

在 Linux 和 Android 系统中,USB 插拔事件的判断涉及从内核到用户空间的多层协作。

2025-04-10 17:04:03 670

原创 触摸屏触摸坐标与画面对齐

其中,前三个元素(a、b、c)表示新坐标系中x轴的方向,接下来的三个元素(d、e、f)表示新坐标系中y轴的方向,最后三个元素(g、h、i)通常用于平移变换,但在此矩阵中未使用,保持为0、0、1。例如,如果显示内容是横屏显示,但触摸输入为竖屏,通过应用此变换矩阵,可以将触摸输入旋转,使其与显示内容一致。将一个点(x, y)表示为列向量 [x, y, 1],与上述变换矩阵相乘,得到新的坐标(x’,y’):​。因此,原始点(x, y)经过此变换后,得到新坐标(y, -x + 1),实现了逆时针旋转90度的效果。

2025-04-10 16:41:49 413

原创 创建分区并格式化

【代码】创建分区并格式化。

2025-04-08 18:19:53 110

原创 实现usb的MTP功能

最终结果根据用户自主选择可实现host和device功能的切换。效果展示:当插入usb时设备会弹窗当用户选择。

2025-04-08 17:09:36 420

原创 系统调试手段

系统调试手段。

2025-03-13 16:01:20 261

原创 在uboot添加设备实例

在uboot阶段实现关机充电,充电时led黄灯常亮,刚充电或者短摁按键屏幕会显示充电动画,长摁按键如果满足条件系统会进行重启。

2025-03-13 15:26:11 1005

原创 gadget uac

Gadget UAC在RK3588平台中通过灵活的USB Gadget框架实现了音频设备的模拟,适用于需要高实时性音频传输的场景。其核心在于内核驱动配置与用户空间的动态功能绑定,开发者可根据需求选择UAC1或UAC2协议,并结合复合设备功能扩展应用场景。

2025-03-10 10:34:45 1002

原创 Peripheral mode 或Host mode这两种模式的区别、用途

通过ConfigFS创建Gadget设备,设置PID/VID、功能描述符(如Mass Storage或MTP),并绑定到USB控制器(UDC)。实际开发中需结合具体需求,通过设备树、内核配置和用户空间工具(如ConfigFS)灵活调整模式,并参考Rockchip官方文档进行验证。用途:将RK3588作为存储设备(如U盘)、调试设备(ADB/MTP)或外设(如HID设备)连接到PC或其他主机设备。:启用Host控制器节点(如usb_host0_ehci),并关联对应的USB PHY28。

2025-03-10 10:26:52 869

原创 rk3588s USB外设与Gadget Config

当然,若想利用官方文件,模拟各种外设,可以将USB_FUNCS=""的值赋为:adb、mtp、acm…Windows:更新 MTP 驱动(设备管理器 → 便携设备 → 更新驱动 → 自动搜索)。通过以上步骤,可在 RK3588S 开发板上实现USB的 UMS/MTP 功能。Windows/Linux:插入开发板后,存储设备应显示为 U 盘。Windows:资源管理器应显示为“便携设备”,可浏览内部存储。若内核未配置,需重新编译(见文末 内核编译补充说明)。错误现象:MTP 设备显示为空。

2025-03-07 15:38:02 1193

原创 01.编译AIO-RK3588SJD4

查看编译buildroot时的config文件是【TARGET_BUILDROOT_CONFIG=firefly_rk3588】执行完命令后即可看到源码文件。修改权限,谨慎使用sudo。

2025-03-07 09:35:32 207

原创 创建存储空间

当前分区格式为ext4格式,在Linux系统中可以识别,如果想在Window下识别存储空间,需要把分区通过mkfs.fat命令转为fat格式。至此,分区就创建成功了!

2025-03-05 13:48:45 220

原创 AIO-3588sJD4完整log

【代码】AIO-3588sJD4完整log。

2025-02-28 23:36:04 191 1

原创 简单cli示例---demo

def cli():""": 这个装饰器将函数cli()标记为Click命令组的入口点。它定义了整个CLI的顶层命令组。cli()函数: 作为命令组的入口点,它的主要作用是提供CLI的基础结构和文档字符串作为CLI的帮助文本。name }!')name }!'): 这个装饰器定义了一个CLI命令,这里是hello命令。: 用于定义命令的选项。在这里,--name(或-n的简写)是一个选项,它可以提示用户输入,用于指定要打招呼的人的名字。hello()函数: 实际执行打招呼功能的函数,使用。

2025-02-28 17:57:18 56

原创 修改logo

u-boot和kernel的logo替换这两个图片即可。

2025-02-28 17:50:51 181

原创 device*和of函数的区别

如何将 device_property_read_u32() 和 of_property_read_u32() 关联起来。使用 device_property_read_u32() 通过设备对象读取属性。使用 of_property_read_u32() 直接读取设备树属性。

2025-02-27 11:07:06 241

原创 Linux 内核中用于读取设备属性API

这些函数用于访问设备对象中的属性,通常在设备驱动中使用。

2025-02-27 11:02:15 315

原创 常见的 OF 操作函数

以下是一些常用的设备树相关的 of 函数,这些函数通常用于设备驱动或内核初始化代码中,以访问设备树的节点和属性。

2025-02-27 10:54:25 276

原创 buildroot进行个性化rootfs.img

在buildroot/package目录下建立helloworld,并在该目录下建立Config.in 和 helloworld.mk 两个文件。在external 下创建helloworld文件夹,并在该文件夹下创建.c源码工程文件和Makefile文件。helloworld.mk里的宏,除了BR2开头的,其余宏都要以HELLOWORLD_ 开头。编译完成并进行挂载后可以看到home下有app/app.txt 目录结构。在package/下找到Config.in文件,在最后添加自己的软件。

2025-02-26 19:31:06 567

原创 git命令集

git命令基本使用。

2025-02-17 08:51:30 895

原创 系统级调试

在Linux系统中,系统级调试涉及通过各种工具来分析、排查和修复系统运行中的问题。常见的系统级调试任务包括进程管理、内存分析、CPU性能监控、磁盘I/O分析、网络调试等。Linux提供了许多命令和工具来帮助开发者和管理员进行系统级调试。查看所有进程:bash复制代码ps aux查看某个用户的进程:bash复制代码1.2 top 命令top 命令提供实时的系统性能视图,包括CPU、内存、负载和运行中的进程。它是一个动态更新的界面,帮助用户监控系统的运行状况。

2024-11-12 13:59:05 529

原创 linux启动流程

在旧版计算机中,BIOS(基本输入输出系统)负责硬件初始化,包括CPU、内存、键盘、显示器、硬盘、网络等设备的初始化。内核启动时,会挂载根文件系统(/),这可能是通过initrd(或initramfs)暂时加载一个临时文件系统,待内核识别并挂载真实的文件系统。这个过程中涉及的技术,如进程管理、内核态与用户态切换、信号与中断处理、文件系统管理等,都是Linux系统正常运行和资源管理的核心部分。init进程是Linux系统的根进程,进程ID为1,它负责初始化用户空间,挂载文件系统,启动系统服务等。

2024-11-12 13:57:26 491

原创 python包总结

尝试寻找一个库然后返回其路径名,name是库名称,且去除lib等前缀和.so、.dylib、版本号等后缀。当一个协程通过asyncio.create_task()等函数被封装为一个任务,该协程会被自动调度执行。适合处理I/O密集型任务,如:网络请求,文件读写,可以并发运行多个任务,而不需要线程或进程切换。用于执行外部命令(如系统命令、脚本等),它会创建一个新的子进程来运行指定的命令。保护一个可等待对象,防止其被取消,如果aw是一个协程,它将自动被作为任务调度。它会等待命令的输出,然后返回结果。

2024-11-12 12:02:43 757

原创 cli最新版本

cli

2024-10-28 18:10:14 120

原创 cli-tool

功能点:1.调用动态库函数作为命令。如:get_portState,slot_present等。2.调用可执行程序作为命令。如:iio-info,cpld-upgrade3.满足tab键补全和上键补全历史记录难点:1.进程和线程同时使用stdin,需要加锁。本示例中锁为 stop_thread2.实现命令的方式有三种,三种方式各不相同直接写调用动态库函数------lib = ctypes.CDLL(‘/usr/lib/libfpga.so’) ; lib.fpga_is_slot_pre

2024-08-21 15:35:01 358

原创 gdb调试

①启动gdb这将启动 ‘gdb’ 并加载指定的程序②加载程序加载指定的程序到 ‘gdb’ 中③运行程序启动程序并传递命令行参数。可以在 ’ run ‘ 后加上程序所需的参数。

2024-08-07 10:01:56 323

原创 demo-1-Determine if ping is successful

【代码】demo-1-Determine if ping is successful。

2024-08-06 10:59:40 129

原创 基于【python click框架,做cli 】检索结果,输出合适的内容

import clickimport subprocessimport sysimport ctypesimport timeimport threadingimport shleximport restop_thread = threading.Event()'''c structtypedef struct PORTSTATUSINFO{ char portName[64]; uint16_t linkStatus

2024-07-30 09:27:43 120

原创 shell-script-base-pl

d:匹配任何数字,等价于[0-9]。\d匹配 “1”、“2”、“3” 等。\D:匹配任何非数字字符,等价于[^0-9]。\D匹配 “a”、“b”、“!” 等。\w:匹配任何字母数字字符及下划线,等价于。\w匹配 “a”、“1”、“_” 等。\W:匹配任何非字母数字字符及下划线,等价于。\W匹配 “!”、“@”、" " 等。\s:匹配任何空白字符(空格、制表符、换行符等),等价于。\s匹配 " “、”\t"、“\n” 等。\S:匹配任何非空白字符。\S。

2024-07-18 14:20:14 961

原创 telnet-cli

【代码】telnet-cli。

2024-07-17 14:36:35 205

原创 click--base

基本参数就是通过位置里指定参数值 @click.argument(‘x’)

2024-07-16 14:07:14 461

原创 简单cli示例---demo

def cli():""": 这个装饰器将函数cli()标记为Click命令组的入口点。它定义了整个CLI的顶层命令组。cli()函数: 作为命令组的入口点,它的主要作用是提供CLI的基础结构和文档字符串作为CLI的帮助文本。name }!')name }!'): 这个装饰器定义了一个CLI命令,这里是hello命令。: 用于定义命令的选项。在这里,--name(或-n的简写)是一个选项,它可以提示用户输入,用于指定要打招呼的人的名字。hello()函数: 实际执行打招呼功能的函数,使用。

2024-07-16 14:06:30 395

原创 python click框架,做cli

python click框架,做cliimport clickimport subprocessimport sysimport ctypesimport timeimport threadingimport shlex# 线程控制标志位stop_thread = threading.Event()'''c中structtypedef struct PORTSTATUSINFO{ char portName[64]; uint16_t

2024-07-15 17:46:56 834

原创 makefile 编写

定义变量可以使Makefile,更易于维护和修改CC = gcc #编译器CFLAGS = -WALL -g #编译选项LDFLAGS = =lm #链接选项。

2024-07-15 15:58:32 320

原创 shell script base

在shell编程中,变量是用于存储数据值的名称;在定义变量时,变量名不加美元符号($,PHP语言中需要)变量名和等号之间不能有空格只包含字母(大小写敏感)、数字(不能以数字开头)、下划线(_)避免shell关键字(例:if 、then 、else 、fi 、for 、while等)使用大写字母表示常量read命令一个一个词组接收输入的参数,每个词组需要使用空格进行分割;如果输入的词组大于需要的参数个数,则多出来的词组将被作为整体为最后一个参数接收。

2024-06-06 10:29:01 666

原创 -设备树-

aliases节点是一个特殊的节点,用于定于设备别名。该节点位于设备树的根部,并具有节点路径 /aliases.aliases节点是一个容器节点,包含一组属性,每个属性都代表一个设备别名。每个属性的名称是别名的标识符,而属性的值是被引用设备节点的路径或设备树中其他节点的路径。示例aliases{在上述例子中,由四个别名的定义:mmc0别名与设备树中的sdmmc0节点相关联,通过使用别名mmc0,其他设备节点设备或客户端程序可以更方便地引用sdmmc节点,而不必直接使用其完整路径。

2024-05-17 16:42:49 1336

原创 -字符设备-

在linux系统中每一个设备都有相应的设备号,通过该设备号查找对应的设备,从而进行之后的的文件操作,设备号有主设备号与此设备号之分,主设备号用来表示一个特定的驱动,此设备号用来管理下面的设备。功能:初始化传入的cdev类型的结构体,并与自定义的file_operations * 类型的结构体进行链接。功能:动态申请设备号,内核会自动分配一个未使用的设备号,相较于静态申请设备号,动态申请会。//隶属于同一主设备号的次设备号的个数。//字符设备的设备号,由主设备号和次设备号构成。

2024-05-17 16:01:16 947

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除