赟赟、嵌入式
从事于嵌入式软件开发的工作,Qt软件应用和驱动调试和单片机软件开发,请多多指教,相互学习。。。。
展开
-
RK3568基于openHarmony3.2版本之GT911触摸屏调试成功
瑞芯微rk3568基于openharmony3.2版本调试触摸屏gt911原创 2024-03-22 09:36:26 · 407 阅读 · 0 评论 -
rotary-encoder旋钮编码器驱动
按照这个思路,得出了下面encoder_interrupt_handler中断处理函数。如果of_match_table与设备树中的节点compatible匹配上的话,就进入到probe函数中。可以从上述规律中得出:只有第一、三阶段有不一样,第二、四阶段都是一样的电平。顺时针的时候:channelA电平变化:1–>1–>0–>0。逆时针的时候:channelA电平变化:0–>1–>1–>0。channelB电平变化:0–>1–>1–>0。channelB电平变化:1–>1–>0–>0。原创 2024-01-19 09:04:12 · 252 阅读 · 0 评论 -
RK356x基于Ubuntu20.04搭建ROS开发环境
一开始我以为Qt的plugin没有设置到export的环境变量导致的,其实不是,只需以下指令。然后重新执行就可以了。网上大多数是去执行乌龟那个程序。安装ros-noetic-desktop-full。操作系统:arm64 Ubuntu20.04。1、首先确保开发板是可以联网的。5、向系统导入ROS环境变量。可能会出现以下错误打印信息。4、安装ros完整的依赖项。6、启动roscore。有可能出现以下报错信息。有可能出现以下报错信息。7、启动rviz工具。原创 2024-01-18 09:12:17 · 394 阅读 · 0 评论 -
瑞芯微RK356x烧写失败分析原因
可以看出在第一个打印信息在DDR初始化,EMMC出现了通信问题,第二个在内核阶段依然报错。按照这个理论判断EMMC出现了问题,更换一块新的EMMC测试一下我的想法对不对。在一批板子中总有几个会出现一些小问题,比如烧写失败,启动不了等现象问题。EMMC如果出现问题会出现USB烧写的时候烧不进去,烧进去了在EMMC启动的时候会报一些mmc报错的打印信息出来。很明显,在这个log打印信息下,DDR初始化失败,我们可以尝试更换DDR去查看。更换之后,这以上两种情况都没有再出现,可以正常烧写并运行。原创 2023-12-17 16:32:03 · 911 阅读 · 0 评论 -
RK3568基于openharmony3.2版本之MIPI屏幕调试
由于工作需要,RK3568需要支持openharmony3.2系统版本,需要重新移植下载源码并且适配自家公司的核心板。在开发的过程中,可谓是真滴难!!!原本openharmony系统就没有多少开源的资料了,然后整个架构跟linux和Android的SDK不一样,导致开发过程十分缓慢。。。就以MIPI屏幕为例接下来。原创 2023-11-23 09:44:26 · 1174 阅读 · 0 评论 -
RK356x 修改uboot和kernel,让固件支持多个设备树DTB选择
这一点非常重要,为什么这么说呢,因为如果不把按照下面修改的话,会出现启动的时候直接进入recovery的文件系统。由于瑞芯微默认把uboot的环境变量设置成了CONFIG_ENV_IS_NOWHERE ,意思是环境变量将不会存储在任何地方,因此无法使用和修改环境变量。如何需要维持上一次上电前选择的配置的话,我们需要改成CONFIG_ENV_IS_IN_MMC。需要将多个设备树DTB文件一起打包到resource.img镜像中,让uboot启动阶段时选择不同的设备树以达到不同的配置。原创 2023-09-15 11:39:41 · 831 阅读 · 0 评论 -
RK356x Android11更换默认的Launcher
ubuntu版本:18.04开发平台:RK356xAndroid版本:android11。原创 2023-08-03 19:51:13 · 968 阅读 · 2 评论 -
在瑞芯微SDK源码上构建自己的356x编译固件
在旧的SDK编译的时候也没有这个报错信息,然后通过编译脚本查找:build.sh —> device/rockchip/common/mk-fitimage.sh —>提及到device/rockchip/.BoardConfig.mk–>这个文件是软链接到我们一开始创建的device/rockchip/rk356x/hyb-rk356x.mk。默认的内核配置:sdk源码/kernel/arch/arm664/configs/rockchip_rk3568_defconfig。原创 2023-07-26 16:00:41 · 538 阅读 · 0 评论 -
瑞芯微 RK356x 基于Android11移植usb接口rtl8723du wifi和蓝牙一体化
Realtek RTL8723DU是一个高度集成的单片机802.11b/g/n 1T1R WLAN,和一个集成的蓝牙2.1/4.2单片机,USB 2.0多功能。它将一个WLAN MAC、一个支持1T1R的WLAN基带、BT协议栈(LM、LL和LE)、BT基带、调制解调器和WLAN/BT RF结合在单个芯片中。RTL8723DU为一个高性能集成的无线局域网和蓝牙控制器提供了一个完整的解决方案。RTL8723DU WLAN基带实现了1发射和1接收路径的正交频分多路复用(OFDM),并与802.11n规范兼容。原创 2023-07-10 14:06:15 · 1335 阅读 · 3 评论 -
Android 开关机POWER键 长按短按代码分析
如果想取消短按熄屏如何做呢?接下来是我的做法如下。原创 2023-06-29 17:08:08 · 821 阅读 · 0 评论 -
linux usb摄像头反复插拔出现Unable to handle kernel NULL pointer内核错误
这个是内核中的调用顺序,可能是尝试启用摄像头设备的视频流时出现问题(是由于分配 USB 带宽失败或设置 USB 接口时出现问题导致的。然后经过反复测试,最终在usb_ifnum_to_if(const struct usb_device *dev,适当的在怀疑会出现报错的地方添加一些打印信息,我个人比较喜欢使用“printk()”,很明显这个问题是由于出现访问空指针导致了内核出现崩溃。unsigned ifnum)函数上添加以下语句。查看打印信息,定位到了这个函数。原创 2023-06-01 09:51:56 · 903 阅读 · 0 评论 -
RK356x在Android11只显示4k分辨率3840x2160
原来在Android系统中,有一个文件是有过滤分辨率的功能,该文件位于Android\device\rockchip\rk356x\common\resolution_white.xml或者Android\device\rockchip\rk356x\rk356x\rk356xxx\resolution_white.xml。如果不做这一步的话,需要驱动是显示了3840x2160的分辨率,但是显示的界面大小还是1920x1080分辨率,需要修改以下系统柜默认的尺寸。调试方法,可以通过查看VOP的状态。原创 2023-05-29 10:25:05 · 1629 阅读 · 0 评论 -
linux下USB3.0端口无法识别3.0设备
然后在博客上看到有人尝试把RX和TX中的ESD器件拆了就可以了。白费我研究了这么长时间的软件。过往有USB功能的板子基本上不需要怎么调,只要PCB布线按照规则来一般都没有什么问题。这次从软件上到硬件上折腾了一番,USB的工作原理和驱动实现逻辑都看了一遍了。ESD器件的作用:静电保护元器件,他可保护整个电路体系免受浪涌、脉冲、静电的破坏从而降低损失。本次遇到的是USB3.0的端口插入3.0的设备不通,需要分析其原因。USB3.0只需要RX+,RX-,TX+,TX-。USB2.0的话,把D+和D-。原创 2022-09-07 15:52:22 · 3386 阅读 · 0 评论 -
基于RK3566中RTL8201F网口百兆调试笔记
本次调试是基于RK3568的固件基础上去调试的,不巧的是RK3568使用的是千兆芯片RTL8211。所以配置也有些差异。首先看看RK3568的网口配置是如何的接下来是RTL8201F的配置方法先看看原理图。原创 2022-08-01 16:21:00 · 6193 阅读 · 1 评论 -
Rockchip基于RK3566/RK3568 WiFi AP6256调试笔记
这次的WiFi模块调试相比上次ap6212WiFi驱动调试笔记又有不一样的收获,这次是纠结在bus-width=为4线一直不行,当把bus-width改为1后(sdio单线模式)后,就能顺利加载模块了。电压不一样也会影响WIFI不能正常工作,如何去切换SDIO3.0和SDIO2.0模式。原创 2022-09-26 14:36:45 · 11440 阅读 · 17 评论 -
RK356x之HDMI显示出现输出信号不稳定、花屏、出现红条纹现象
PHY_VLEVCTRL寄存器 (0x0e) 值用于调整 HDMI 的信号幅度,具体定义如下:Bit[0:4] : tmds_clk +/- 信号幅度,值越低,信号幅度越大;HDMI显示器接到控制板上可以显示,但是会出现时不时出现闪烁,红条纹(就好像之前我们家里大块电视上的条纹)。Bit[5:9]: tmds_data +/- 信号幅度,值越低,信号幅度越大。Bit[4:5]:DATA 信号sloop boost。Bit[0:2]:值越大,端接电阻值越大。Bit[3:1]:DATA 信号预加重。原创 2023-03-23 08:57:48 · 2164 阅读 · 5 评论 -
linux上USB检测异常,报错usb 7-1: device descriptor read/8, error -71
USB设备插入检测打印信息,如下。原创 2023-03-17 09:26:05 · 2905 阅读 · 0 评论 -
RK356x 在uboot下设置GPIO引脚默认电平
首先打开RK356X的SDK软件包,查看一下uboot源码,这次我先在u-boot/common/board_f.c和board_r.c文件上添加GPIO口设置,虽然添加了gpio_direction_output()或者gpio_set_value()类似的GPIO设置的函数,但是用万用表测量了一下,怎么都不起效果。例如你需要先在系统上设置你刚才的设置参数是否生效,输入指令,用万用表测量,等测量无误后再到uboot上进行修改,这样效率大大增大。原创 2023-02-14 11:30:44 · 3354 阅读 · 5 评论