- 博客(34)
- 收藏
- 关注
原创 驱动学习专栏--字符设备驱动篇--2_字符设备注册与注销
函数在注册字符设备驱动时,会将主设备号下的所有设备都注册掉,即你无法再使用次设备号了,所以在后面的Linux内核中,这种方法已经被逐渐弃用了。经过下面的log可以看到,在设备注册后,字符设备里就有了设备号为200的chrdevbase。Linux 中每个设备都有一个设备号,设备号由主设备号和次设备号两部分。组成,主设备号表示某一个具体的驱动,次设备号表示使用这个驱动的各个设备。在设备注册时,还需要有字符设备操作集,我们可以先按照最简的方法实现。下每个设备都有一个设备号,设备号分为主设备号和次设备号两部分。
2025-04-16 23:09:07
483
原创 驱动学习专栏--写在前面
所以文档中的一些东西需要对应的在rv1106平台上做修改,创建此专栏记录驱动学习的路程和心得。专栏中的知识则主要基于正点原子的开源文档。下面是LUCKFOX的WIKI链接。此专栏基于正点原子的文档。
2025-04-12 21:47:26
379
原创 驱动学习专栏--字符设备驱动篇--1_chrdevbase
新建一个文件夹/home/hya/workspace/Linux_drivers/1_chrdevbase。在~/workspace/Linux_drivers/1_chrdevbase下执行make。流进行读写操作的设备,读写数据是分先后顺序的。驱动中最基本的一类设备驱动,字符设备就是一个一个字节,按照字节。等等都是字符设备,这些设备的驱动就叫做字符设备驱动。将ko文件通过adb push到rv1106板端。执行完成后会生成chrdevbase.ko文件。通过insmod和rmmod注册和卸载模块。
2025-04-12 21:35:33
219
原创 RK806S PMIC电源管理芯片调试
当点按PWRON按键时,rk806上电开始启动bootloader和uboot,在执行到此处时检测到是由于按键启动的,所以0x5d的值是0x80,0x74的值是0x80,在一般情况下,mode都默认是none的,所以mode值为11,因此就进入了我们的if判断,若是由于按键启动的,则直接调用rk8xx_shutdown函数关掉,进入这个函数会看到实际是通过i2c给0x72寄存器的BIT(0)写1,使其关机。当SoC在12V电源已经接入,且处于关机状态时,使用PWRON按键开机,0x74的值则为0x80。
2025-03-29 11:43:53
602
原创 RK356X rockit_mpi解析 (一)实现HDMI输出
编译完的可执行文件在buildroot\output/rockchip_rk3568/target/usr/bin/rk_mpi_vi_test。熟悉瑞芯微RV1126的应该知道之前有一套rkmedia的框架,现在的rk3568已经不再是之前的旧框架了,但仍沿用了RK_MPI的内容。此处我们使用的demo为test_mpi_vi.cpp,编辑CMakeList.txt文件打开mpi_vi的编译。文件夹下的demo并不是全部编译的,要想编译哪个demo,可以编辑文件下的CMakeLists.txt文件。
2024-04-07 11:15:09
2412
11
原创 调试gt9xx驱动记录
所以首先写设备树,查看芯片手册,七位地址为0x14,另外复位和中断的pin脚要参考SoC端的gpio,max-x与max-y分别代表屏幕的width和height(这里对应不一定对应准确,按照实际测试去看),tp-size为具体的tp芯片型号,此处我使用的是gt911。TP的x、y坐标翻转修改下面的参数,例如此时发现x坐标与手的点击恰好相反,则将gtp_x_reverse 改为FALSE,如果在设备树里定义的max-x与max-y和分辨率对应有问题,则修改gtp_change_x2y。
2024-03-12 16:23:52
1310
2
原创 基于RV1126移植Sony imx585
RV1126SDK内的sensor驱动,发现可以直接用的型号并不多,在实际项目实现的过程中,还是需要调试新的sensor,因此记录一下调试过程,之后的Sony系列都可以套用这个过程来实现。
2023-10-09 10:59:32
1727
15
原创 基于RV1126 rkmedia、rkaiq的项目实现
将录像,单帧拍照,rtsp推流功能整合起来,使用手机app控制,能将视频、图片转发到手机。在板端的服务端代码中引入websockets、http-server、cJSON等库,因为rv1126没有硬解,只能先将yuv图片发到手机,调用手机ffmpeg解码为png。在服务端代码实现上,使用websockets通讯,cJSON协议转发命令,http-server实现图片与视频的发送。rockchip的rkmedia库提供了很多的demo,比如本地录像、本地单帧拍照(支持NV12、JPEG)、RTSP推流等。
2023-09-12 12:34:42
1159
3
原创 RK3399SDK同步repo命令报错问题
usr/bin/env python 改为 #!出现类似的这三种报错,都可以考虑是python版本的问题,即repo的python版本与用户版本不匹配。当根据手册运行.repo/repo/repo sync -l 命令进行本地压缩包同步时出现报错。/usr/bin/env: "python":没有那个文件或目录。再次运行repo同步命令问题解决。
2023-04-10 11:28:46
739
1
原创 Ubuntu配置samba
加入以下信息,path路径要与步骤2的路径保持一致。5.windows中连接共享文件夹。windows+R //虚拟机ip。ifconfig查看虚拟机ip。3.配置smb.conf文件。4.启动samba服务。
2023-04-03 10:41:39
818
转载 RV1126 buildroot编译无法找到linux-HEAD.tar.gz
你到sources.buildroot.net下去看,其实此压缩包已经不存在了。这样你需要自己找资源下载,并将其放到 buildroot/dl 文件夹下。
2022-12-28 15:26:22
250
原创 瑞芯微烧录操作失误,无法识别开发板,如何救砖
如果使用瑞芯微工具烧录时操作失误,瑞芯微工具会无法识别开发板。其原因是emmc的初始化失败,导致无法被识别。这样我们需要强行进入MASKROM模式,重新烧录。首先需要找到开发板emmc的clk时钟线,让其与GND短接,随后重新上电。(注:这项工作最好由硬件工程师来协助你,)之后瑞芯微工具就可以顺利发现一个MASKROM设备了,接下来就可以进行烧录了。以后的烧录,要严格的按照地址分区,避免发生类似错误。
2022-12-28 15:18:11
5839
1
原创 指针的内存分析
在32位地址中,有32根地址线,地址线是物理线,通电后,电信号转化为数字信号:1和0组成的二进制序列。假设一个内存单元是1bit,然而在32位中,char类型大小为1字节(1Byte)-- 8 bit(内存单元)一个char类型竟然占用8个内存单元,不合理且浪费!
2022-09-08 22:48:29
203
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人