
嵌入式Linux及驱动开发
文章平均质量分 85
嵌入式Linux及驱动开发
宁静致远2021
天道酬勤,持之以恒。
发上等愿,结中等缘,享下等福;
择高处立,寻平处住,向宽处行。
展开
-
Qt触摸屏隐藏鼠标指针
1.如果只希望在某个 widget 中不显示鼠标指针,那么在该 widget 的构造函数中调用。还可以用setCursor函数来设置鼠标指针的不同样式。3.可以在任一控件或者页面下显示或者隐藏鼠标指针。QT鼠标图标显示与隐藏。原创 2025-04-12 20:50:09 · 460 阅读 · 0 评论 -
openssl交叉编译
no-async: 交叉编译工具链没有提供GNU C的ucontext库。no-asm: 在交叉编译过程中不使用汇编代码代码加速编译过程;–cross-compile-prefix=: 交叉编译工具。shared: 生成动态连接库。–prefix=: 安装路径。执行下面的命令配置工程。原创 2025-04-06 10:03:35 · 521 阅读 · 0 评论 -
【VS Code 插件】SQLite 可视化插件
(3) 在搜索结果中选择 SQLite:打开数据库(open database)。将选择你的数据库文件:*.db。项目经常用到SQLite这个轻量型数据库,于是乎,就想着找一个可视化工具,但是我有时候只是想方便预览数据。用习惯VS Code的小伙伴们都知道,插件的帮助之下,开发效率更高。我的表名称为events,全查询如下,sql的语句知识捡一下。但这时候,你会发现,啥变化都没有,别急,继续。表,又不想安装额外的程序,那么这款插件很适合你。输入查询语句后,右键Run Query执行查询。原创 2025-03-09 20:45:18 · 1485 阅读 · 0 评论 -
qt 操作多个sqlite文件
以下是一个简单的示例,展示如何在Qt中操作多个SQLite数据库文件。在Qt中使用多线程操作多个SQLite数据库文件时,需要注意SQLite的线程安全性以及Qt的多线程机制。SQLite默认支持多线程操作,但需要确保每个线程使用独立的数据库连接,以避免竞争条件。如果文件不存在,SQLite会自动创建它。使用QSqlDatabase::addDatabase创建独立的数据库连接,并通过moveToThread将工作者对象移动到独立的线程中。程序会创建多个线程,每个线程操作一个独立的SQLite数据库文件。原创 2025-03-08 20:21:15 · 1371 阅读 · 0 评论 -
QT-自定义参数设计框架软件
常用本地数据参数通常使用的是xml等文本的格式,进行本地的数据参数的存储。这种参数的保存方式有个致命的一点,就是可以存在参数的丢失。特别是在软件异常退出的情况下发生。针对此等情况,我们现在使用的是sqllite的本地存储方式进行设计,并且尽量将参数的格式通用化。原创 2025-03-04 21:17:31 · 849 阅读 · 0 评论 -
Qt互斥锁(QMutex)的使用、QMutexLocker的使用
QMutexLocker提供的简化互斥锁锁定和解锁的机制在很多时候时蛮方便的,在使用互斥锁的地方使用QMutexLocker会减去许多安全隐患;不过在多线程循环输出ABC的时候好像就不适合该方法。所以使用类似的类还得按情况而定。原创 2025-02-27 22:12:20 · 2091 阅读 · 0 评论 -
Qt延时处理的四种方法
这种方法不会阻塞当前线程,尤其适合Qt的单线程带UI程序,或者UI线程,因为线程阻塞时,很明显的现象就是UI卡死。它可以使得程序在while等待期间,去处理一下本线程的事件循环,处理事件循环最多100ms必须返回本语句,如果提前处理完毕,则立即返回这条语句。1、 多线程程序使用QThread::sleep()或者QThread::msleep()或QThread::usleep()或QThread::wait()进行延时处理。4、 创建子事件循环,在子事件循环中,父事件循环仍然是可以执行的。原创 2025-02-26 20:35:28 · 876 阅读 · 0 评论 -
VS Code User和System版区别【推荐使用System版本】and VSCode+Keil协同开发之Keil Assistant
把软件也分用户和系统管理员,对于普通用户而言,为了避免不必要的麻烦,建议使用System版,仅供参考。对于User版安装程序以及VScode程序默认均为英文,貌似不能读取系统语言环境,System版直接是中文安装程序,以及中文显示面板。User版本无法在系统分区(盘) 创建默认文件夹Microsoft VS Code,可见权限不足。Visual Studio Code官网却提供了User和System两个版本。对于System版无此问题,可next step到底,和其他不分的软件一样了。原创 2025-02-16 19:48:14 · 1675 阅读 · 0 评论 -
TortoiseGit间接处理linux目录下的仓库,用到window映射linux目录方案
这次尝试了3种映射linux目录到window的方案,都可以完成映射,基本的增删改查文件都没问题。但是只有WinFsp这个工具完美运行TortoiseGit,搞定收工。原创 2025-02-02 22:17:47 · 581 阅读 · 0 评论 -
无需命令行,用 VSCode 轻松提交 Git 代码
Git 作为版本控制工具,通过在开发过程中记录代码的变化,简化了开发者之间的代码协作。而对于许多开发者而言,命令行提交 Git 代码却是一项让人感到困难的任务。然而,现在你可以轻松地通过 VSCode 提交 Git 代码,让你的代码管理变得更加轻松和高效。在本文中,我们将介绍如何使用 VSCode 来实现简单的 Git 提交, 帮助你更加流畅地完成软件开发。git stash 命令用于临时保存当前工作目录的修改,并将工作目录恢复到上一次提交的状态。原创 2025-02-01 17:27:15 · 3003 阅读 · 0 评论 -
Ubuntu下的Doxygen+VScode实现C/C++接口文档自动生成
Doxygen 是一个由 C++ 编写的、开源的、跨平台的文档生成系统。最初主要用于生成 C++ 库的 API 文档,但目前又添加了对 C、C#、Java、Python、Fortran、PHP 等语言的支持。其从源代码中提取注释,并生成多种输出格式,如HTML、PDF、LaTeX、RTF等,以帮助开发者创建易于阅读和理解的代码文档。Doxygen 简化了另行编写文档带来的重复性劳动,将代码和文档的工作合二为一。经过 10 年的迭代,Doxygen 成为了 C/C++ 项目首选的文档生成工具。原创 2025-01-31 18:14:31 · 998 阅读 · 0 评论 -
使用Doxygen实现代码自文档化
Doxygen是一个程序的文档产生工具,可以将程序中的注释转换成说明文档,后者API参考手册要遵守一定的注释规范,才能被Doxygen识别和转化在每个代码项中都可以有两类描述:brief描述 和 detailed描述;两种任选其一若需要通过Doxygen生成漂亮的文档,一般有如下几个地方需要使用Doxygen支持的风格进行注释头文件(.h 和 .hpp):主要用于声明版权,描述本文件实现的功能,以及文件版本信息等。原创 2025-01-31 11:34:12 · 1032 阅读 · 0 评论 -
RK3506典型应用场景分析
RK3506核心板平台支持AMP多核异构多系统,支持Linux、 RTOS、 Bare-metal组合的AMP系统架构,可实现2xCortex-A7 Linux + 1xCortex-A7 RTOS+ Cortex-M0 HAL或3xCortex-A7 RTOS + Cortex-M0 HAL的应用结构。该MPU具有低功耗、外设接口丰富、实时性高的特点,适合用多种工商业场景。RK3506核心板显示接口支持RGB、MIPI、QSPI输出,且支持2D图形加速,轻松运行QT、LVGL等GUI,最快3S内开机。原创 2025-01-20 21:49:14 · 739 阅读 · 0 评论 -
linux下实现U盘和sd卡的自动挂载
2、在/etc下的mdev.conf文件中加入(如果没有这个文件,则新建一个)3、在/etc下建立hotplug文件夹,并在该文件夹下建立两个文件。1、在/etc/init.d/rcS中加入以下语句。原创 2025-01-11 22:39:16 · 965 阅读 · 0 评论 -
嵌入式linux 内核启动时动态加载驱动模块的方法
手头有个项目底层基本结束,所有的驱动都已经写好,并且调试通过了,但是考虑到每次使用时都手动加载驱动,岂不是很“蠢”,能自动的事怎么能手动呢?于是开始折腾“linux开机自动加载驱动”,百度,谷歌了半天,怎么感觉说的都不清楚:为毛他们说的文件、文件夹我都没有?难道我用的是假的文件系统,假的内核?唯一靠谱的就是:在 /etc/rcx.d 文件夹下添加shell脚本,再让脚本去 insmod或modeprob 自己的驱动。原创 2025-01-10 20:03:46 · 796 阅读 · 0 评论 -
rk3588(七):GPIO简介及使用
原文链接:https://blog.csdn.net/qq_32636415/article/details/134918848在 RK3588 中,有只支持 1.8V,和支持 1.8V/3.3V 两种电压可配置,共两种类型的 GPIO。Core-3588J 有 5 组 GPIO bank:GPIO0~GPIO4,每组又以 A0~A7, B0~B7, C0~C7, D0~D7 作为编号区分,常用以下公式计算引脚:GPIO pin脚计算公式:pin = bank * 32 + numberGPIO 小组编号计原创 2024-12-02 14:19:11 · 2219 阅读 · 0 评论 -
Ubuntu20.04下安装VSCode(配置C/C++开发环境)和设备树插件用于嵌入式开发
vscode-icons , VSCode 图标插件,主要是资源管理器下各个文件夹的图标。用这个命令安装deb文件:sudo dpkg -i <package-name.deb>进入VSCode官网Visual Studio Code,下载deb版本。在左侧扩展商店中查找 ”chinese“选第一个安装,安装好后重启软件。在左侧扩展商店中查找 ”DeviceTree“安装,,设备树语法插件。在左侧扩展商店中查找 ”C/C++“选第一个安装。在左侧扩展商店中查找 ”Json“选第一个安装。原创 2024-11-28 17:52:12 · 881 阅读 · 0 评论 -
【迅为电子】RK3568驱动指南|第十七篇 串口-第199章 串口子系统框架
在串口通信协议和串口通信接口类型的基础上,串口子系统框架为串口设备的驱动和管理提供了完整的架构。rx”,“tx”打开tx dma、“rx”打开rx dma、“!pinctrl-names 和 pinctrl-0:用于串口设备的管脚控制,以配置和管理串口设备的引脚设置。串口子系统框架的层级设计将串口设备的功能分解为不同的层次,实现了功能的模块化和抽象化,方便开发者进行串口设备的驱动开发和维护。reg:指定串口设备的地址和大小,0xfe6d0000 是串口设备的基地址,0x100 表示地址空间的大小。原创 2024-11-27 21:15:48 · 808 阅读 · 0 评论 -
瑞芯微RK3568驱动配置之十串口
瑞芯微RK3568驱动配置之十串口Chaptet1 瑞芯微RK3568驱动配置之十串口Chapter2 创龙瑞芯微RK3568设备树1(修改设备树GPIO和串口)前言基础题外话内容1.GPIO2.串口不同总结后续Chapter3 QT串口大量数据动态实时显示(三)========“customplot绘图步骤”前言第一部分: 串口接收大量数据动态显示的难点串口大量数据QT接收时问题的原因:选择customplot绘图的原因:Chapter4 创龙瑞芯微RK3568参数修改(调试口波特率和rootfs原创 2024-11-27 20:55:03 · 1658 阅读 · 0 评论 -
Linux驱动开发(速记版)--设备树插件
*Linux 4.4之后引入了动态设备树,其中的设备树插件(Device Tree Overlay)是一种扩展机制,允许在运行时动态添加、修改或删除设备节点和属性。**设备树插件机制通过DTS(设备树源文件)定义,提供了一种灵活配置硬件设备的方式,无需重新编译整个设备树,也无需重启系统即可进行硬件配置更改。在 linux 源码中 linux_sdk/kernel/Documentation/filesystems/configfs 目录下的 configfs.txt。是设备树插件的帮助文档。原创 2024-11-22 22:32:01 · 1188 阅读 · 0 评论 -
解决Ubuntu18.04及以上版本高分辨率下导致字体过小问题
设置缩放比例,调节所有字体缩放的倍数,如我设置1.5倍大小,自己根据自己的电脑分辨率定。屏幕分辨率太高了,导致整个系统字体看起来过小。安装完成后,在终端输入下面命令,弹出优化窗口。安装gnome-tweaks桌面配置工具。输入数字完成后,按下enter回车键即可。原创 2024-11-18 19:52:23 · 1172 阅读 · 0 评论 -
Qt 通用pro配置
如果指定 TEMPLATE为 lib模板,且未指定 CONFIG为静态库或者动态库,则默认生成动态库。提供一个通用的Qt pro工程配置。原创 2024-11-16 16:21:04 · 488 阅读 · 0 评论 -
VMware 17虚拟Ubuntu 22.04设置共享目录
lang=zh_cn。笔者按官方文档https://docs.vmware.com/en/VMware-Workstation-Pro/17/com.vmware.ws.using.doc/GUID-AB5C80FE-9B8A-4899-8186-3DB8201B1758.html,以及vmhgfs-fuse -h示例,使用vmhgfs-fuse .host:/ /mnt/hgfs来挂载共享目录,可是还是无法显示出来。是的我认为是我的,共享文件挂载问题,很多文章的挂载过程比较简单,甚至挂载过后依然无效。原创 2024-11-15 11:17:57 · 1572 阅读 · 0 评论 -
linux下RX8010SJ实时时钟芯片(RTC)的读写
由于项目的需要在ARM嵌入式板子上挂上了一颗EPSON的RX8010实时时钟芯片,为数据采集提供可靠的时间。RX8010内置了具有温补的晶振,可以简化设计,而且也不贵,所以就选择了它。其中rx8010为RX8010驱动注册的名称,不能为其它字符,而0x32则为该芯片在I2C总线上的通信地址。上面的命令将合成的字符串写入new_device,然后内核就会查找到加载的RX8010驱动,将地址传入,再由驱动程序与实际芯片进行通信,如果通信正常则完成设备的注册,生成设备文件/dev/rtc1。原创 2024-11-14 10:24:50 · 1252 阅读 · 0 评论 -
【全志T113】RTC时钟芯片PCF8563移植驱动流程记录
硬件部门交付的主板上外挂了一颗RTC时钟芯片PCF8563,我需要实现pcf8563的驱动、外部rtc同步到系统、开机自动同步时间等工作。这类时钟芯片大多数是通过i2c通讯和soc进行连接,而且linux内核自带了pcf8563的驱动,如果顺利的话,开发起来是非常顺利的。但是由于不熟悉流程,所以踩了很多坑,写下来作为记录供后人参考。原创 2024-11-14 09:16:25 · 2049 阅读 · 0 评论 -
ubuntu18.04下载国内镜像及安装事项
Debian是一种自由的操作系统,它基于Linux内核和GNU项目的软件。Debian的目标是提供一个稳定、安全、高效和易于使用的系统,适用于各种硬件平台和应用场景。Debian的特点包括:丰富的软件包:Debian拥有超过60000个软件包,涵盖了各个领域,如办公、教育、游戏、编程、科学、多媒体等。用户可以通过apt工具方便地安装和更新软件包。多架构支持:Debian支持多种处理器架构,如x86、x86_64、arm、mips、ppc等。用户可以根据自己的硬件选择合适的版本。原创 2024-10-28 08:47:14 · 3625 阅读 · 0 评论 -
QT获取本机所有IP地址以及修改本机IP(注意区分Windows和Linux环境)
它提供了获取本地系统中所有网络接口的信息的能力,并允许访问与这些接口相关的属性,比如IP地址、硬件地址、接口名称等。上面代码中Qt::CaseSensitivity 为枚举类型, 可取值Qt::CaseSensitive 和 Qt::CaseInsensitive, 表示匹配的灵敏度,例如,查看设备上所有网络接口的状态、检测网络连接问题、获取接口相关信息等。每个 QNetworkInterface 对象包含接口的属性,如硬件地址、接口名称、标志(如是否为环回、是否可用、是否为无线等)。原创 2024-10-21 19:34:13 · 1294 阅读 · 0 评论 -
Ubuntu16.04安装openssl库
1.首先去openssl官网下载源码www.openssl.org/source/(我下载的是openssl-1.1.1f版本)2.把源码包移动到进usr/local目录下(要在root权限下进行)5.进入目录cd /usr/local/openssl-1.1.1f。4.压缩tar xfz openssl-1.1.1f.tar.gz。7.测试openssl是否安装成功openssl version。3.进入usr/local目录 cd /usr/local。再次查看openssl版本,成功。原创 2024-10-19 19:23:10 · 717 阅读 · 0 评论 -
嵌入式Linux开发板配置静态IP
修改interfaces配置文件,普通用户interfaces文件权限只可读,首先切换到root权限。文件里添加如下信息,对应于以太网接口配置的网口信息,键盘按Esc,输入:wq 保存退出即可。原创 2024-10-15 11:46:19 · 376 阅读 · 0 评论 -
VMware导入vmdk文件(亲测有效)
硬件兼容性:默认选择最新的行,因为和本地安装的vmware版本有关,这里演示的版本是:VMware® Workstation 17 Pro。根据机器的内存选择虚拟机分配的内存,建议20GB及以上,如果机器内存不够32G,那么虚拟机就分配机器内存的60%根据cpu的数量和每个cpu的内核数选择,建议cpu的数量为机器cpu数量的50%新建虚拟机向导,点击浏览按钮,选择后缀为vmdk的文件,然后点击下一步。修改虚拟机的名称,不修改的点击下一步。网络类型默认选择NAT,点击下一步。点击开启此虚拟机,流程完毕。原创 2024-10-12 13:52:57 · 2969 阅读 · 0 评论 -
Linux:Ubuntu18.04下开机自启动QT图形化界面
如果这里启动失败了需要回头更改rc.local文件看看是不是有语法错误或者执行的脚本有没有问题。如果在里面运行了脚本记得给脚本也添加可执行权限(在脚本所在文件夹下打开终端)困扰了一天的时间,终于解决,好了,废话不多说,直接上干货。电脑重启后就会自动执行,跳出QT图形运行界面 ,成功!如果查看状态和我一样的话,就说明程序启动成功了。如果启动一切无误且状态正常的话使能开机自启动。原创 2024-07-06 08:51:09 · 1817 阅读 · 0 评论 -
【正点原子MP157连载】第十九章 Buildroot根文件系统构建-摘自【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7
答案肯定是有的,buildroot就是这样一种工具,buildroot比busybox更上一层楼,buildroot不仅集成了busybox,而且还集成了各种常见的第三方库和软件,需要什么就选择什么,就跟我们去吃自助餐一样,想吃什么就拿什么。因此在做产品的时候推荐大家使用buildroot来构建自己的根文件系统,当然了,类似buildroot的软件还有很多,比如yocto,一般半导体厂商会选择yocto来制作系统包,但是由于国内的网络环境,yocto编译起来会有很多问题!19.1 何为buildroot?原创 2024-07-04 09:54:38 · 842 阅读 · 0 评论 -
为RK3568或RK3288开发板创建交叉编译环境{采用amd64的ubuntu系统配置交叉编译arm64开发环境}(保姆级包括安装QT)超详细记录版
开发环境采用的是amd64 linux的系统,所以.run可以运行,我们在QT官网下载即可,版本自己选择即可,最好与后面要编译的qt对应起来。(9)这个hello.c建议放在/home/你的用户名/下面的文件夹内。(8)创建一个简单的c程序,用arm64编译器编译一下放到板子上运行。(1)将两个交叉编译器文件放在Downloads下面。(5)添加交叉编译器环境,路径在:/opt/都显示版本号说明没有问题。原创 2024-07-02 16:54:37 · 3460 阅读 · 0 评论 -
linux就该这么学【进程间通信】
原文链接:https://blog.csdn.net/m0_53421868/article/details/123194775原创 2024-06-29 11:00:36 · 192 阅读 · 0 评论 -
Linux之killall命令
我们可以使用kill命令杀死指定进程PID的进程,如果要找到我们需要杀死的进程,我们还需要在之前使用ps等命令再配合grep来查找进程,而killall把这两个过程合二为一,是一个很好用的命令。默认情况下,killall 会告诉你命令执行情况,但是,我们如果不关心它的执行结果,只想让它静默执行,只需加上-q选项即可,其中q表示quite。如果你在杀死多个进程时不太放心,担心把不该杀死的进程给杀死了,那么你可以使用-i选项。killall 命令是大小写敏感的,所以我们如果写错大小写,将无法正确杀死进程。原创 2024-05-30 09:09:10 · 1130 阅读 · 0 评论 -
win10双网卡如何同时上内网和外网?
右键点击“以太网”,在打开的菜单项中,选择“属性”,点击选中“Internet协议版本4” - 点击“属性” - “高级” - 接口跃点数设置为“1”,各个窗口点击“确定”经常使用有线网访问外网,可以将有线网网络跃点数设置为“1”。如果经常使用无线网,那么就将无线网的跃点数设置为“1”。即哪个网络常用就设置哪个网络跃点数。原文链接:https://www.jb51.net/os/win10/806585.html。原创 2024-05-29 17:56:06 · 2587 阅读 · 0 评论 -
驱动一个mipi接口的屏幕
目前的改写都是需要自己一一改写,本文借助Chatgpt写了一个自动转换的代码,实际上是一个文本处理程序,为了节省时间,仅实现多余三个参数的情况,1个参数和2个参数还有延时的情况需要自己添加。原理图:这里主要是R4电阻的确定,根据MP3302数据手册和屏幕的数据手册得到屏幕背光led的额定电流,用MP3302DJ这颗IC做恒流驱动。PCB:唯一注意的地方就是mipi需要做100Ω的差分等长布线,预留测时序的接口P1。通常厂家给的格式如下:(伪代码)电路设计、确定时序、上电验证。原创 2024-05-16 20:09:55 · 1279 阅读 · 0 评论 -
RK3568外置RTC芯片PCF8563T(或替代型号)实验
rtc芯片的电压不低,但是总报错,先注释掉就可以使用了。报错原因以后再看一下寄存器相关文档。在kernel的menuconfig中选中。原创 2024-05-13 15:40:37 · 1811 阅读 · 0 评论 -
基于Ubuntu环境Git服务器搭建及使用
将客户端公钥id_rsa.pub内容复制到服务端.ssh/下新建文件authorized_keys里,这样我们在拉取推送代码时,就不需要输入密码了。在服务器终端输入如下命令,输入两次密码后(比如密码也是:git),一路回车就创建好了。客户端:windows10_x64、Ubuntu20.04。无论是服务端还是客户端都需要先安装git。服务器:Ubuntu18.04。原创 2023-12-31 22:10:35 · 3249 阅读 · 0 评论 -
linux实用技巧:ubuntu18.04安装samba服务器实现局域网文件共享
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。原创 2023-12-30 18:54:32 · 2377 阅读 · 2 评论