- 博客(119)
- 收藏
- 关注
原创 【RK3566】修改调试串口波特率
摘要:本文档详细介绍了RK3566 SDK调试串口波特率从1500000修改为115200的完整适配方案。通过DDR固件、U-Boot和Kernel三个关键环节的配置修改:1)使用ddrbin_tool工具修改DDR固件的波特率参数;2)调整U-Boot配置文件中的波特率设置;3)修改Kernel设备树中fiq-debugger节点的波特率参数。最后需重新编译并烧录固件,使用115200波特率验证串口通信是否正常。该方案适用于RK3566平台在Kinco场景下的串口调试适配需求。
2026-08-13 16:19:05
217
原创 【Rk3506】修复xpt7603实时内核下触控失效问题
针对Linux实时内核下XPT7603触摸屏驱动存在的触控失效问题,提出将中断处理模式从传统工作队列升级为线程化中断(Threaded IRQ)的优化方案。核心修改包括:重构中断处理函数为线程化模式,增加触摸状态检测和采样频率控制;使用request_threaded_irq替换原生接口,配置IRQF_ONESHOT标志确保实时性。该方案解决了原驱动在中断上下文执行受限、调度延迟敏感导致的中断丢失问题,显著提升了高频率界面切换场景下的触控稳定性。
2026-08-10 17:40:36
224
原创 EtherCAT的SM同步和DC同步
摘要: EtherCAT的SM同步和DC同步分别解决数据与时序问题:SM同步确保数据完整不撕裂(锁定总线周期内数据刷新),DC同步对齐全网设备时间(消除硬件延迟差异)。二者必须配合使用——SM管数据冻结与统一提交,DC管硬件同步脉冲,通过SYNC0信号触发STM32中断执行任务。配置时需在SSC工具开启DC支持、绑定SM同步事件,STM32需硬件连接SYNC0中断,TwinCAT主站需校准全局时钟与偏移量,最终实现纳秒级同步精度。双同步缺一不可,是工业高精度控制的基石。
2026-07-16 18:18:36
516
1
原创 【Rk3506】 fstab分区调整及残留问题排查
文章摘要: 在调整RK3506 Linux6.1的fstab分区配置时,通过在30-fstab.sh脚本开头添加exit 0意图禁用OEM和UserData分区的自动挂载,但发现修改后编译生成的fstab中仍保留这两个分区的挂载条目。经排查发现,问题根源在于增量编译未清除历史产物——旧版fstab文件残留在output目录中被复用。
2026-07-15 18:24:29
202
原创 【Rk3506】 U-Boot 通过 bootargs 向Kernel传递参数
摘要:本文介绍了RK3506平台U-Boot通过bootargs向内核传递动态参数的技术方案。该方案通过在U-Boot晚期初始化阶段读取屏幕时序、LOGO及显示通路参数,打包为自定义参数追加至系统bootargs,实现多硬件版本的自适应适配。内核启动时解析这些参数动态覆写设备树显示节点属性,无需修改DTB源码或单独编译不同设备树。文章详细说明了U-Boot端工程实现,包括文件变更清单、核心代码逻辑(参数打包、bootargs动态追加)以及量产固化参数的初始化方法。该方案利用Linux内核cmdline特性(
2026-07-15 15:50:45
373
原创 RK3576+GMSL摄像头底层适配与调试
本文详细介绍了RK3576芯片适配GMSL摄像头的底层方案。主要内容包括: 硬件架构:通过SerDes芯片将GMSL信号转换为MIPI CSI-2信号输入RK3576 设计规范:电源要求、信号连接和PCB布线要点 软件适配:内核配置、驱动移植和设备树配置 调试流程:从硬件检查到图像采集验证的完整步骤 常见问题:I2C通信、图像异常等问题的排查方案 性能优化:针对不同应用场景的性能调优建议 方案核心在于GMSL到MIPI的信号转换适配,通过软硬件协同设计实现稳定可靠的相机链路。
2026-07-14 23:42:20
276
原创 Linux pthread 实时线程开发总结
摘要:本文总结了Linux pthread实时线程开发的关键实践,重点阐述嵌入式设备中硬件中断与上层业务线程的隔离架构。文章详细解析了pthread线程生命周期管理、实时调度策略选择(优先使用SCHED_FIFO)、系统优先级分层标准,以及核隔离方案(中断独占Core0,业务跑Core1)。同时提供了线程安全退出机制和完整的多业务线程实现模板,包含背光检测、触控采集和LCD刷新三个典型场景的优先级配置和资源管理规范,强调工程实践中属性模板与线程实体的分离原则,确保实时系统的稳定性和低延迟特性。
2026-07-14 22:05:06
258
原创 DRM驱动流转流程(RGB)
本文详细解析了Linux DRM显示子系统中RGB液晶屏的完整驱动流转流程,自上而下分为应用层、DRM框架层、simple-panel驱动层、设备树配置层、SoC控制器层和硬件层。重点剖析了DRM核心四大节点(Plane、CRTC、Encoder、Connector)的协同工作机制,以及显存数据合成、时序生成、信号适配的完整流转过程。针对常见显示异常(撕裂、闪屏、白屏、黑屏)提供了原理分析和排查思路,并详细阐述了亮屏/熄屏的标准执行流程。该文档可作为DRM显示驱动开发、调试及面试的实用技术参考。
2026-07-12 21:59:46
182
原创 【RK3506】RGB屏幕与背光调试记录
本文档详细介绍了基于RK3506 Linux6.1平台的RGB彩屏与PWM背光调试全流程。主要内容包括: 调试概述:提出"先供电、再时序、后显示"的核心调试原则 硬件参数核对:提供1024*600 RGB屏幕的标准时序参数 设备树配置:详细说明显示子系统、Panel屏幕和PWM背光的规范配置 内核配置要点:列出必须开启和需要关闭的关键选项 调试验证方法:提供引脚复用核查、显示日志分析、背光功能验证等实用命令 文档特别强调时序参数必须严格遵循屏幕手册,并提供了完整的设备树配置示例和常见问题排查方法,是RGB屏
2026-07-12 17:43:54
169
原创 【rk3506】U-Boot串口时钟未配置,导致串口彻底失效
摘要: 瑞芯微SoC(如RK3506)串口无输出问题排查:即使设备树中串口状态、引脚配置正确,仍需显式配置时钟源。U-Boot阶段若缺失assigned-clocks、assigned-clock-rates或时钟频率(如clock-frequency = <24000000>),串口时钟会失效导致硬件静默。关键点:时钟配置优先于引脚检查,需确保设备树包含频率和时钟源,示例如下: &uart3 { status = "okay"; clock-frequency = ; pinctrl-0 = ; };
2026-07-12 15:46:44
123
原创 【rk3506】分区管理及分区数据读取
本文介绍了Rockchip RK3506平台的分区管理与调试方法。主要内容包括: 分区表解析:通过parameter-128M.txt文件展示了RK3506的典型分区布局,包括uboot(12KB)、misc(2KB)、logo(10KB)、boot(20KB)、rootfs(128KB)和userdata分区,并提供了分区布局示意图。 参数详解:解释了分区表文件中各参数的含义,如FIRMWARE_VER、MAGIC、TYPE等关键配置项。 misc分区操作:介绍了如何使用mtd工具读取misc分区内容,并
2026-07-12 14:56:55
68
原创 【rk3506】更换文件系统类型squashfs->ubifs
本文介绍了将RK3506开发板根文件系统从SquashFS迁移到UBIFS的过程。SquashFS作为只读压缩文件系统适合存储固件,但开发中需要可写文件系统、更好的NAND Flash适配性及动态空间管理。迁移步骤包括:1)修改Buildroot配置,禁用SquashFS并启用UBIFS支持;2)调整内核配置,关闭EXT4和SquashFS,开启UBIFS;3)更新设备树,将rootfstype参数从squashfs改为ubifs。调试过程中需特别注意文件系统格式参数的修改,确保内核命令行参数正确配置。该迁
2026-07-12 14:49:31
199
原创 【rk3506】解决cpufreq目录不存在问题
摘要 在排查RK3506平台CPU频率相关sysfs节点缺失问题时,发现内核已正确配置CPUFreq驱动。进一步调查发现,Rockchip芯片的DVFS功能需要完整的硬件链路支持(PWM调压电路→控制器通道→引脚复用)。核对设备树与原理图后发现,当前硬件设计未接入PWM调压电路,导致内核无法初始化CPUFreq驱动,最终表现为/sys/devices/system/cpu/cpu0/cpufreq目录未生成。根本原因是硬件不支持动态调频调压功能,软件层面的配置无法生效。
2026-07-12 14:44:22
179
原创 【rk3506】内核态下rgb液晶显示测试
本文分享了RK3506平台下基于Buildroot最小系统的纯内核态屏幕显示测试方案。该方案直接操作/dev/fb0帧缓冲显存,无需依赖图形工具,可稳定验证屏幕显示、VOP通路和驱动配置。关键步骤包括:确认VOP驱动状态、计算精确显存大小(1024x600分辨率下为2457600字节)、执行底层写屏命令(如全屏纯色填充)。方案避开了DRM框架的显存抢占问题,解决了传统测试工具在最小系统中失效的痛点,适用于驱动调试、产测校验等场景。文中提供了详细的命令示例和原理说明,并针对常见错误给出了排查方法。
2026-07-12 14:22:59
237
原创 RK3506 UBIFS 压测只读故障终极解决 _ UBI 自动坏块替换机制深度调优(Linux6.1)
文章摘要(149字) RK3506平台UBIFS压测中出现NAND写入失败并永久锁只读问题,经分析发现根因是UBI默认坏块预留不足(34块)低于算法需求(36块),叠加Linux6.1内核断言机制过于严苛。最终通过内核配置优化和启动参数ubi.max_beb=50 ubi.reserved_pebs=40 ubifs.assert=warn组合方案解决:补足运行时容错资源、放宽坏块容忍阈值、降级断言等级,使设备在高压IO下保持稳定,彻底消除永久只读问题。方案适用于小容量NAND设备量产场景。
2026-07-10 09:31:24
400
原创 RK3566MTD分区表大小换算与解析
摘要 本文解析了嵌入式开发中MTD分区表的配置与换算方法,重点介绍了以扇区(512Bytes)为单位的mtdparts参数格式。通过示例配置,详细说明了分区大小的换算规则:扇区数×512=字节大小,字节数÷1024÷1024=MB大小。文中提供了各分区从扇区到MB的完整换算过程表,帮助开发者准确理解存储空间分配,便于项目调试与存储管理。
2026-01-15 11:21:37
152
原创 ubuntu执行git svn clone发生中断:APR does not understand this error code: ra serf
ubuntu执行git svn clone发生中断:APR does not understand this error code: ra serf
2024-08-05 13:59:35
762
原创 双系统安装流程参考示例
第一个选项可以解决一切问题。安装程序会智能地配置 Ubuntu 系统所需的所有分区。如果您不一定介意硬盘驱动器的自动分区,请选择此选项。第二个分区通常是当您想要完全清除当前操作系统(在本例中为 Windows 10)并安装 Ubuntu 时。因为我们不想这样做,所以我们将避开这个选项。最后,我们有“其他”选项。该选项将方向盘交给您,让您根据自己的喜好手动配置分区。下一步要求您选择安装类型。
2024-02-19 20:02:48
472
原创 Unity中使用Ultraleap的InteractionButton组件
Unity中使用Ultraleap的InteractionButton组件
2024-01-29 14:58:54
791
原创 Ultraleap 3Di示例Interactable Objects组件分析
Ultraleap 3Di示例Interactable Objects组件分析
2024-01-26 16:48:49
968
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅