- 博客(146)
- 资源 (40)
- 收藏
- 关注
原创 RK3568下编译解决未定义符号而报错终止链接
从RK3568板子导出libsqlite3.so后,编译连接时出现错误。以往我通过重新编译SQLite3源码并替换板子上的库来解决。现在,我采用另一种方法:在编译时增加参数-Wl,--allow-shlib-undefined,以允许未定义符号而不终止链接。经过实测,该方法在板子上运行成功。
2025-05-20 17:57:56
32
原创 RK3568下QT实现按钮切换tabWidget
本文详细介绍了在Qt C++应用程序中如何通过按钮点击来切换TabWidget页面的实现方法。首先,通过UI拖拽组件到面板上,并设置槽函数。接着,编译运行程序,用户可以通过点击按钮实现TabWidget页面的自动切换,提供便捷的页面导航方式。代码实现主要涉及三个文件:mainwindow.h、mainwindow.cpp和main.cpp。在mainwindow.h中定义了MainWindow类,包含用于页面切换的槽函数;在mainwindow.cpp中实现了这些槽函数,具体逻辑包括创建TabWidget、
2025-05-19 11:20:07
181
原创 RK3568下QT实现输入框支持虚拟键盘
本文介绍了在rk3568开发板上运行Qt5虚拟键盘的步骤。首先,编译pinyin生成libqtpinyind.a,并将其拷贝到Qt5.9.6的指定目录下。接着,编译qt5softkeyboard生成libQt5SoftKeyboardd.so,同样将其放入Qt5.9.6的plugins/platforminputcontexts目录。最后,在项目的main.cpp中设置环境变量QT_IM_MODULE为Qt5Input。通过以上步骤,即可在项目中成功使用虚拟键盘功能。本文还提到了一个基于QWidget实现的
2025-05-15 09:20:49
152
原创 RK3568下电容触屏幕调试技巧
本文详细介绍了在RK3568平台上配置Goodix GT911触摸屏的步骤和注意事项。首先,明确了硬件参数和内核驱动的准备,包括I2C接口、设备地址、GPIO功能分配等。接着,解析了设备树的核心配置项,如I2C总线配置、GT911设备节点详细配置和GPIO引脚复用配置。文章还提供了实际案例优化建议,如中断触发类型明确化和复位电平有效性验证。调试实战部分涵盖了设备枚举检查、内核日志分析和触摸事件测试。最后,总结了常见问题与解决方案,并提出了设备树配置的黄金法则,强调数据手册优先、渐进调试、版本控制和厂商协作的
2025-05-13 13:46:04
237
原创 网络故障排查实战: ping 包丢包禁用自动协商
在一次设备调试过程中,遇到了网络丢包和TCP连接无法建立的问题,尽管防火墙已关闭。通过分析系统内核日志,发现网络接口存在MTU修改异常、链路状态频繁变化和混杂模式频繁切换等问题。初步排查排除了物理连接和MTU设置的问题,怀疑是PHY芯片或驱动兼容性问题。最终,通过禁用自动协商并手动设置网络接口的速率和双工模式,成功解决了丢包问题。建议后续深入排查硬件问题,更新驱动程序,并定期监控网络状态,以防止类似问题再次发生
2025-05-13 10:11:58
43
原创 Weston显示系统中单屏幕独立旋转配置指南
通过Weston的单屏幕旋转配置,开发者可灵活应对多屏异构显示需求。核心在于准确获取屏幕名称、合理配置transform属性,并注意触摸校准的联动调整。掌握这些技术细节,能有效提升嵌入式设备的人机交互体验,尤其在工业控制、车载终端等多屏场景中具有重要实用价值。如需进一步调试,可通过查看Weston服务日志,排查配置加载过程中的异常信息。
2025-05-06 16:51:35
55
原创 嵌入式tslib触摸库的移植
在嵌入式开发领域,触摸屏作为重要的人机交互接口,其准确性直接影响用户体验。tslib触摸校准库为解决触摸屏校准问题提供了有力支持,本文将结合实际项目经验,深入解读tslib库的移植与使用,并分享一些在过程中遇到的问题及解决方法。
2025-05-06 16:34:27
173
原创 RK3568下MIPI屏幕调试技巧
通过合理配置设备树节点、精确计算像素时钟并完成编译烧录,可高效实现RK3568平台MIPI屏幕的点亮与显示调试。关键在于严格遵循屏幕规格书参数,结合内核日志定位问题,逐步优化时序配置。掌握这一流程后,开发者可快速适配不同分辨率、刷新率的MIPI屏幕,为嵌入式系统显示模块开发奠定基础。如果在调试中遇到特定问题(如驱动匹配失败、时钟计算误差),建议优先查阅屏幕规格书和RK3568芯片手册,或通过内核社区(如Linux-DRI邮件列表)获取支持。
2025-04-30 15:52:13
61
原创 RK3568下背光控制 软件与调试技巧
RK3568的背光控制涉及到硬件GPIO、PWM技术、设备树配置以及命令行操作等多个方面,它们相互配合,共同打造出一个稳定、高效的背光控制系统。无论是硬件工程师在设计硬件电路时对GPIO的布局,还是软件工程师在代码和设备树中进行的参数配置,又或是开发人员在调试过程中使用命令行进行的操作,每一个环节都至关重要。能对RK3568的背光控制有更深入的理解,在实际的开发和调试工作中能够更加得心应手,为打造出更优质的显示效果贡献自己的力量。要是在实际操作过程中遇到什么问题,欢迎在评论区留言讨论,咱们一起攻克难题!
2025-04-29 14:32:37
71
原创 Minix 文件系统2·C代码实现ls功能读取 Minix 文件系统镜像
Minix文件系统包含几个关键的数据结构,这些结构协同工作,以实现文件的存储、检索和管理。
2025-04-29 11:12:24
682
原创 Minix 文件系统1·在 Linux 上创建和挂载 Minix 文件系统
在Linux系统的学习与实践过程中,了解和掌握不同类型文件系统的创建与挂载是一项重要的技能。Minix文件系统作为一种小型且简单的文件系统,常被用于教学和研究场景。本文将详细介绍如何在Linux系统上创建和挂载Minix文件系统,通过逐步操作,帮助你深入理解文件系统相关知识。
2025-04-29 10:23:35
625
原创 strcspn函数,去掉一行字符串中的回车和换行
在C语言的字符串处理中,`strcspn` 是一个容易被忽视但功能强大的函数。它不仅能用于字符串过滤,还能在文本预处理场景中发挥关键作用。通过原理剖析、实战案例和性能分析,全面掌握这个函数的用法。
2025-04-27 14:26:03
471
原创 基于C语言的Telnet文件系统服务器开发
Telnet交互:客户端通过Telnet连接后,可输入命令与服务器交互。文件系统模拟:在内存中模拟简单的磁盘和文件元数据,支持文件的创建、删除、读写。命令支持:实现类似Unix的命令,包括lstouchecho >catrm等。调试与健壮性:添加调试日志,处理输入输出中的特殊字符(如回车换行符),确保命令解析的准确性。
2025-04-27 14:11:34
36
原创 制作一个简单的操作系统11
这个简单的操作系统内核项目实现了多个核心功能,为用户提供了基本的交互和文件管理能力。这个简单的操作系统内核项目实现了基本的终端交互和文件系统模拟功能,为初学者提供了一个了解操作系统内核基本架构和实现原理的良好平台。通过对代码的详细解析,我们可以看到操作系统内核的各个模块是如何协同工作的,包括内核启动、格式化输出、文件系统操作、键盘输入和终端输出等。然而,这个项目还有很多可以改进和扩展的地方。例如,可以进一步完善文件系统,支持更多的文件操作和文件系统特性;可以增加进程管理功能,实现多任务处理;
2025-04-27 10:43:13
143
原创 制作一个简单的操作系统10
int size;int in_use;这里定义了模拟磁盘的大小、文件系统中最多可存储的文件数量以及文件名的最大长度。结构体用于存储文件的元数据,包括文件名、起始块、文件大小和使用标志。通过这段代码,可以看到如何使用 C 语言模拟一个简单的文件系统,实现基本的文件操作和常见的命令行操作。代码中手动实现的字符串和内存操作函数增加了代码的独立性和可移植性。
2025-04-25 17:37:30
221
原创 制作一个简单的操作系统9
探索如何实现一个自定义的 printf 函数来处理任意 %d 和 %s 组合这样参数传递:(最多支持5个参数,按顺序匹配)在 C 语言编程中,`printf` 函数是一个非常常用的输出函数,它可以根据格式字符串输出不同类型的数据。然而,有时候能需要实现一个自定义的 `printf` 函数来满足特定的需求,比如处理任意 `%d` 和 `%s` 的组合。本文将详细介绍如何实现这样一个自定义的 `myprintf` 函数。
2025-04-25 16:40:04
122
原创 制作一个简单的操作系统8
myOS` 操作系统内核主要由多个模块组成,包括终端显示、键盘输入处理、内核初始化和基本工具函数等。各模块之间相互协作,实现了基本的字符显示和键盘输入响应功能。下面我们将逐个模块详细分析。文件定义了一系列数据类型,确保在不同的编译环境下,数据类型的大小和行为一致。这些类型在后续的代码中被广泛使用,提高了代码的可移植性。定义了终端操作的接口,包括写入字符串和获取键盘输入的函数。这些函数的具体实现分布在不同的文件中。
2025-04-24 10:14:32
337
原创 制作一个简单的操作系统7
实模式下的硬件初始化与磁盘读取。保护模式的关键技术(GDT、A20地址线、模式切换)。汇编与C语言的混合编程。虽然功能简单,但它为进一步开发操作系统奠定了基础。例如,可以扩展Loader实现内存分页、添加文件系统支持,或在C语言中实现更复杂的硬件驱动。操作系统开发的魅力在于对底层原理的深度掌控,每一行代码都直接与硬件对话。t=P1C7。
2025-04-22 16:02:49
39
原创 制作一个简单的操作系统6
1. **BIOS阶段**:计算机加电后,首先运行主板上的BIOS(基本输入输出系统),执行硬件自检(POST),并寻找可引导设备(如硬盘)。2. **MBR引导**:BIOS从硬盘的第一个扇区(主引导记录MBR,地址0x7c00)读取512字节的引导代码,并跳转执行。3. **加载程序**:引导代码(通常是汇编语言)负责从磁盘读取更大的加载程序(Loader)到内存,进而切换到保护模式或继续执行后续初始化。
2025-04-21 15:01:55
29
原创 制作一个简单的操作系统5
之前的文章 使用nasm汇编器(英特尔语法),现在改 使用 AT&T 语法(为了GCC和汇编混合编码更加容易)利用 0x0000-0x7bff 的 30KB 空间作为栈区,足够引导阶段使用。在实模式下,内存地址由段寄存器(CS/DS/SS 等)和偏移量组成。等设为 0,确保后续操作从物理地址 0x00000 开始。gcc,然后制作一个可以在虚拟机运行的os.bin。(即 0x7c00),栈向下(低地址方向)增长。必须为 512 字节(1 个磁盘扇区)2. 链接生成 ELF 可执行文件。
2025-04-21 11:12:20
27
原创 制作一个简单的操作系统4
BIOS 会将引导扇区加载到内存 0x7c00 地址处并执行,因此代码中通过 [org 0x7c00] 伪指令告知汇编器:所有地址均以 0x7c00 为基址计算,确保指令地址在内存中正确映射。代码通过push 'D',push 'C',push 'B',push 'A',更直观地展示了栈 “后进先出” 的核心特性。栈的特性:栈向下生长(高地址 → 低地址),push 操作使栈指针 SP 递减,pop 操作使 SP 递增。2 栈的 “后进先出”(LIFO)特性。1 栈的初始化与压栈逻辑。
2025-04-21 09:28:35
20
原创 制作一个简单的操作系统3
代表当前指令的地址,$$ 代表当前段的起始地址,$-$$ 表示从段起始处到当前位置的偏移量。当 AH 寄存器的值被设置为 0x0e 时,INT 10H 中断就会以 TTY 模式工作。INT 10H 是 BIOS 提供的中断,在 INT 10H 中断中的作用。打印一个 hello。
2025-04-18 15:01:23
98
原创 制作一个简单的操作系统2
计算机上电启动后,首先运行主板 BIOS 程序, BIOS 并不知道如何加载操作系统,所以 BIOS 把加载操作系统的任务交给引导扇区。因此,引导扇区必须放在一个已知的标准位置,这个位置就是磁盘的第一个扇区(cylinder 0, head 0, sector 0) 该扇区一共占用 512 字节。为了确保 “磁盘是可引导的” BIOS 会检查扇区的第 511 和 512 字节,必须是。使用nasm汇编器,gcc编写自己的os。最简单的引导扇区,创建一个文件 boot_sect_simple.asm。
2025-04-18 14:41:58
31
原创 RK3568下使用uinput模拟鼠标
实现的程序允许用户使用键盘上的上下左右方向键来控制鼠标的移动,按下回车键则模拟鼠标左键的点击操作。uinput是 Linux 内核提供的一个虚拟输入设备接口,它允许用户空间的程序创建和管理虚拟输入设备,如鼠标、键盘等。这个函数构造一个input_event结构体,填充事件类型、事件代码和事件值等信息,然后通过write函数将事件发送给uinput设备。在代码中,首先要打开/dev/uinput设备文件,获取一个文件描述符,用于后续与uinput设备进行交互。按q键可以退出程序。uinput 设备接口。
2025-04-16 09:48:10
143
原创 制作一个简单的操作系统1
GAS(GNU Assembler):GNU 工具链的一部分,与 GCC 编译器紧密配合,使用 AT&T 语法,常用于 Linux 内核开发。ubuntu中安装gcc,然后制作一个可以在虚拟机运行img。编写的汇编代码,目标是在屏幕上显示 “Hello, World!” 字符串。代码如下hello_gas.asm分别执行下面三条指令然后将 hello_gas.bin 导出到 本地 使用 创建一个虚拟机,编辑虚拟机设置,软盘使用咱们刚才创建的镜像使用软盘镜像文件,点击浏览选择镜像,也就是bin文
2025-04-11 15:10:32
53
原创 基于 QZXing 库的 Qt 二维码解码应用开发指南
QZXing 是基于 ZXing 库的 Qt 封装库,为开发者在 Qt 项目中实现二维码、条形码等多种格式的解码提供了简洁易用的接口。QZXing 库提供的简单易用接口,结合 Qt 的强大功能,可以快速开发出具备二维码解码功能的应用程序。运用 Qt Designer 设计一个简单的用户界面,包含用于显示二维码图像的标签、用于选择图像和解码操作的两个按钮,以及用于显示解码结果的文本编辑框。,提供了简洁的用户界面,包含两个按钮:一个用于选择二维码图像文件,另一个用于解码并显示解码结果。对象,并显示主窗口。
2025-04-11 10:39:44
189
1
原创 RK3568下QT实现记事本
在 Qt Creator 中,通过 “File” -> “New File or Project”,选择 “Qt” 分类下的 “Qt Widgets Application”,按照向导提示完成项目创建。接着构建菜单栏和 “文件” 菜单,为每个菜单项创建QAction对象,并通过connect函数将菜单项的触发信号与对应的槽函数关联起来,从而实现点击菜单项执行相应功能。若路径有效,以只写文本模式打开文件,写入textEdit中的文本内容,关闭文件后更新currentFile。
2025-04-11 09:56:37
143
原创 RK3568下QT实现视频播放器
QT 作为一款跨平台的 C++ 应用程序开发框架,凭借丰富的类库和工具,让开发视频播放器变得简单。本文将介绍如何使用 QT 的QMediaPlayer和QVideoWidget类,实现一个简单的视频播放器,并逐步添加打开视频、播放、暂停、停止以及进度条控制等功能。通过上述步骤,成功实现了一个简单的 QT 视频播放器,具备打开视频、播放、暂停、停止以及进度条控制等基本功能。QT 的多媒体模块为开发多媒体应用提供了便捷的途径,可在此基础上,添加更多功能,如音量控制、全屏播放等,打造更完善的视频播放器。
2025-04-08 10:18:49
196
原创 RK3568下系统启动阶段 LOGO 更换
RK3568 平台的 LOGO 更换涉及从底层引导程序到用户空间的全流程定制。通过本文的技术方案,开发者可以实现静态 LOGO 替换、动态加载、多语言支持等高级功能。在实际开发中,需注意不同系统(Linux/Android/OpenHarmony)的差异,并充分利用串口调试和设备树工具进行问题定位。
2025-04-07 14:37:16
106
原创 RK3568下截屏工具weston-screenshooter
在嵌入式 Linux 开发领域,RK3568 作为高性能 AIoT 芯片,其配套的 Weston 显示服务器为图形界面开发提供了稳定支撑。Weston-Screenshooter 作为 Weston 生态的核心组件,专为 RK3568 等平台设计,具备轻量高效、深度集成的特性。相较于传统工具(如 Windows 的 Snipaste 或 Linux 的 Greenshot),它无需额外依赖,直接通过 Weston 协议调用底层渲染数据,避免了兼容性问题,尤其适合工业控制、车载系统等对稳定性要求极高的场景。
2025-04-03 17:03:04
101
原创 RK3568下GPIO模拟串口
在嵌入式开发中,硬件 UART 资源可能被其他外设占用。此时,通过 GPIO 模拟 UART(软串口)成为一种灵活的解决方案。本文基于 RK3568 平台,结合 Linux 内核模块,实现高精度软串口通信,并深入分析关键技术细节。可以看到已经接收到数据了,可以自己创建自定义的设备文件到/dev下,也可以按照串口设备的标准创建一个设备,后面有时间我写一篇和标准串口设备结合的gpio模拟串口文章。RK3568 GPIO 模拟串口(软串口)实现详解。将编译好的驱动放到板子上运行。再写个Makefile。
2025-04-03 16:49:32
128
原创 RK3568计算gpio引脚的网页程序
使用命令可以查看引脚功能:cat /sys/kernel/debug/pinctrl/pinctrl-rockchip-pinctrl/pinmux-pins。这是一个html的网页小程序,方便开发,下面是源代码,保存成一个网页即可使用rk。如果想要知道 pin30对应的是gpio多少,我这写了一个程序,如果想要知道 gpio1_b5对应的是pin多少,
2025-04-03 11:55:22
47
原创 RK3568下的QT工程配置
安装 Qt Creatorsudo apt install qtcreator 并启动。配置交叉编译器添加 C++ 编译器:选择 aarch64-buildroot-linux-gnu-g++,命名为 3568-GCC,设置 ABI 为 arm-linux-generic-elf-64bit。配置 Qt 版本添加交叉编译的 qmake,路径为 .../host/bin/qmake,命名为 3568-qt5。配置 Kits新建 Kit,命名 3568,选择通用 Linux 设备,关联 3568-
2025-04-03 11:44:50
71
原创 RK3568驱动 SPI主/从 配置
RK3568 SPI 配置指南内核配置:启用用户空间驱动(主)和从模式协议支持。主模式:设备树设置status="okay"、max-freq及引脚复用,子节点compatible="rockchip,spidev"。从模式:需添加spi-slave属性,子节点命名以slave@X开头。编译烧写:修改设备树后编译内核或全量镜像,验证/dev/spidevX.Y节点。测试:使用spidev_test工具,主模式可环回测试,从模式需与主设备通信。(关键:从模式强制spi-slave和命名规则,频率匹
2025-04-03 10:44:01
282
2
原创 导出iptables 规则和恢复的命令
这样就可以将 cmd.txt中的条目添加到 iptables中了。# 备份当前的 iptables 规则。# 从 cmd.txt 中恢复规则。# 检查规则是否成功应用。
2025-03-27 14:08:39
173
### 【电力信息安全】SysKeeper-3000电力专用横向安全隔离装置(正向型)操作手册:装置安装、激活、配置及调试详解南京南瑞信息
2025-04-03
工业互联防火墙V3R8C02版用户使用指南:配置与安全管理
2025-04-03
【Linux内核技术】Linux内核编译与升级及关键子系统解析:涵盖编译流程、进程调度、内存管理、虚拟文件系统与网络子系统的设计与实现
2025-04-03
【C语言编程】基于Minixml的XML文件解析与操作:跨平台简易XML处理库入门教程
2025-04-03
【Linux C应用编程】基于正点原子Linux C应用编程参考手册V1.0:文件I/O、进程与线程编程详解
2025-04-03
【嵌入式系统】基于SPI的W25Q128闪存驱动调试:嵌入式Linux开发板SPI接口配置与MTD子系统集成指南
2025-04-03
### 文章总结:北京迅为 iTOP-3568 开发板 Linux 系统开发和应用开发手册. **文档概述
2025-04-03
【嵌入式开发】基于Linux系统的iTOP-3568开发板USB设备模拟:U盘与USB网卡功能实现及应用指南
2025-04-03
【嵌入式系统】ITOP-3568开发板PCIE2.0接口快速测试手册:硬件复用关系与Linux及安卓系统网卡测试指导
2025-04-03
### 文章总结:北京迅为 iTOP-3568 开发板源码编译手册述 本文档
2025-04-03
iTOP-RK3568开发板,详细介绍了如何使用OpenCV进行机器视觉开发
2025-04-03
嵌入式系统中ITOP-3568开发板多模块驱动实验手册
2025-04-03
嵌入式系统中iTOP-3568开发板外设接口配置指南
2025-04-03
### 【嵌入式开发】基于Qt的ATK-DLRK3568实战指南:从入门到项目实战题:嵌
2025-04-03
【嵌入式开发】基于正点原子ATK-DLRK3568的OpenCV4应用开发指南:计算机视觉程序编写与交叉编译详解
2025-04-03
【嵌入式系统开发】Buildroot快速使用手册:Linux嵌入式开发环境搭建与常见问题解决指南
2025-04-03
ATK-DLRK3568嵌入式Qt开发实例
2025-04-03
《正点原子 ATK-DLRK3568嵌入式 Linux驱动开发指南V1.3》的知识库内容汇总
2025-04-03
基于瑞芯微RK3568平台的Linux系统使用方法
2025-04-03
glib库是Linux平台下最常用的C语言函数库
2023-12-25
gmime2.6-2.6.23-3-src
2023-12-25
友善串口助手破解版.zip
2019-05-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人