嵌入式Linux及驱动开发
文章平均质量分 83
嵌入式Linux及驱动开发
宁静致远2021
天道酬勤,持之以恒。
发上等愿,结中等缘,享下等福;
择高处立,寻平处住,向宽处行。
展开
-
Linux:Ubuntu18.04下开机自启动QT图形化界面
如果这里启动失败了需要回头更改rc.local文件看看是不是有语法错误或者执行的脚本有没有问题。如果在里面运行了脚本记得给脚本也添加可执行权限(在脚本所在文件夹下打开终端)困扰了一天的时间,终于解决,好了,废话不多说,直接上干货。电脑重启后就会自动执行,跳出QT图形运行界面 ,成功!如果查看状态和我一样的话,就说明程序启动成功了。如果启动一切无误且状态正常的话使能开机自启动。原创 2024-07-06 08:51:09 · 1070 阅读 · 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 · 778 阅读 · 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 · 1579 阅读 · 0 评论 -
linux就该这么学【进程间通信】
原文链接:https://blog.csdn.net/m0_53421868/article/details/123194775原创 2024-06-29 11:00:36 · 151 阅读 · 0 评论 -
Linux之killall命令
我们可以使用kill命令杀死指定进程PID的进程,如果要找到我们需要杀死的进程,我们还需要在之前使用ps等命令再配合grep来查找进程,而killall把这两个过程合二为一,是一个很好用的命令。默认情况下,killall 会告诉你命令执行情况,但是,我们如果不关心它的执行结果,只想让它静默执行,只需加上-q选项即可,其中q表示quite。如果你在杀死多个进程时不太放心,担心把不该杀死的进程给杀死了,那么你可以使用-i选项。killall 命令是大小写敏感的,所以我们如果写错大小写,将无法正确杀死进程。原创 2024-05-30 09:09:10 · 946 阅读 · 0 评论 -
win10双网卡如何同时上内网和外网?
右键点击“以太网”,在打开的菜单项中,选择“属性”,点击选中“Internet协议版本4” - 点击“属性” - “高级” - 接口跃点数设置为“1”,各个窗口点击“确定”经常使用有线网访问外网,可以将有线网网络跃点数设置为“1”。如果经常使用无线网,那么就将无线网的跃点数设置为“1”。即哪个网络常用就设置哪个网络跃点数。原文链接:https://www.jb51.net/os/win10/806585.html。原创 2024-05-29 17:56:06 · 1347 阅读 · 0 评论 -
驱动一个mipi接口的屏幕
目前的改写都是需要自己一一改写,本文借助Chatgpt写了一个自动转换的代码,实际上是一个文本处理程序,为了节省时间,仅实现多余三个参数的情况,1个参数和2个参数还有延时的情况需要自己添加。原理图:这里主要是R4电阻的确定,根据MP3302数据手册和屏幕的数据手册得到屏幕背光led的额定电流,用MP3302DJ这颗IC做恒流驱动。PCB:唯一注意的地方就是mipi需要做100Ω的差分等长布线,预留测时序的接口P1。通常厂家给的格式如下:(伪代码)电路设计、确定时序、上电验证。原创 2024-05-16 20:09:55 · 654 阅读 · 0 评论 -
RK3568外置RTC芯片PCF8563T(或替代型号)实验
rtc芯片的电压不低,但是总报错,先注释掉就可以使用了。报错原因以后再看一下寄存器相关文档。在kernel的menuconfig中选中。原创 2024-05-13 15:40:37 · 913 阅读 · 0 评论 -
基于Ubuntu环境Git服务器搭建及使用
将客户端公钥id_rsa.pub内容复制到服务端.ssh/下新建文件authorized_keys里,这样我们在拉取推送代码时,就不需要输入密码了。在服务器终端输入如下命令,输入两次密码后(比如密码也是:git),一路回车就创建好了。客户端:windows10_x64、Ubuntu20.04。无论是服务端还是客户端都需要先安装git。服务器:Ubuntu18.04。原创 2023-12-31 22:10:35 · 2212 阅读 · 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 · 2086 阅读 · 2 评论 -
Win10解决COM口大量在使用中问题的方法
1. Windows+R 输入cmd回车2. 输入regedit打开注册表编辑器3. 进入HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\COM Name Arbiter4. 删除ComDB文件5. 打开设备管理器,扫描硬件改动就可以了,若还是不行则重启计算机原文链接:https://blog.csdn.net/William_Zhang_CSDN/article/details/124501639原创 2023-02-20 13:26:06 · 805 阅读 · 0 评论 -
Win10安装TortoiseGit,报错误码 2503
输入 msiexec /package + 安装程序所在的绝对路径,如: msiexec /package F:\DownLoad\TortoiseGit-2.10.0.0-64bit.msi。原创 2023-02-10 16:06:29 · 572 阅读 · 0 评论 -
RGB、LVDS、MIPI和EDP接口液晶屏
液晶屏有RGB、LVDS、MIPI DSI和EDP等接口,这些接口区别于信号的类型(种类),也区别于信号内容。RGB TTL接口信号类型是TTL电平,信号的内容是RGB666或者RGB888还有行场同步和时钟;LVDS接口信号类型是LVDS信号(低电压差分对),信号的内容是RGB数据还有行场同步和时钟;MIPI DSI接口信号类型是LVDS信号,信号的内容是视频流数据和控制指令。原创 2023-01-12 13:54:15 · 13643 阅读 · 1 评论 -
解决vscode中文乱码问题(不是改GBK,亲测有效)
配置好了以后,下载vscode后也出现了输出中文的乱码问题,用与codeblocks相似的解决方法解除之,又发现网上都是将编码转为GBK(这样用其他应用打开时可能又会出现乱码),好像没有提到这个方法,特此记录之。就是电脑上其他用GBK编写的软件都会出现错误,相当于用大错误换小错误,可以尝试,但不推荐。是因为中文主要有两套编码,一套是GBK,一套是UTF-8,代码编辑器一般默认用UTF-8,而在输出的终端中默认是GBK,所以在UTF-8下的中文输出到GBK的终端自然会乱码。,按enter进入,会打开一个叫。转载 2022-10-30 20:04:54 · 18598 阅读 · 1 评论 -
解决Win10下cmd中git status中文文件名乱码问题
win10下cmd中git status中文名称乱码问题及解决方法原创 2022-09-08 13:42:50 · 746 阅读 · 0 评论 -
Git 开发必备 .gitignore 详解
在使用 git 过程中,掌握 .gitignore 的使用很重要,可以减少不必要的文件上传到远程。原创 2022-09-07 10:52:47 · 1233 阅读 · 0 评论 -
配置交叉编译工具链和环境变量
设置交叉编译工具链交叉编译工具链用来在Ubuntu主机上编译应用程序,而这些应用程序是在ARM等其他平台上运行。设置交叉编译工具主要是设置PATH, ARCH和CROSS_COMPILE三个环境变量,下面介绍具体设置方法。设置这3个环境变量有多种方法,任意选择其中一种方法即可,建议使用“永久生效”的方法。录制视频时我会使用多种开发板,所以在视频里我总是使用“临时生效”的方法。.........原创 2022-07-03 19:54:31 · 10415 阅读 · 1 评论 -
Qt根据不同平台的条件编译
Qt 根据不同平台的条件编译Qt在pro中实现条件编译在用Qt进行嵌入式linux开发时,有时为了调试便利,桌面版linux环境也会配置一份,这样在编译时就会调用不同版本的库。方式一:使用contains()方法二:使用CONFIG变量原文链接:https://www.cnblogs.com/openusb/p/3483279.html在使用iar,keil写单片机时,都可以先#define一个变量,然后根据变量的不同值编译不同的代码在Qt里也可以这样,针对嵌入式的程序,一般是会在X86上编译,De原创 2022-02-09 10:26:07 · 2874 阅读 · 0 评论 -
Buildroot构建指南
Buildroot构建指南原文链接:https://blog.csdn.net/zhou_chenz/article/details/52295674Buildroot是什么Buildroot是Linux平台上一个开源的嵌入式Linux系统自动构建框架。整个Buildroot是由Makefile脚本和Kconfig配置文件构成的。你可以和编译Linux内核一样,通过buildroot配置,menuconfig修改,编译出一个完整的可以直接烧写到机器上运行的Linux系统软件(包含boot、kernel原创 2022-02-04 21:16:48 · 691 阅读 · 0 评论 -
SPI 工作模式
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档SPI 工作模式原文链接:https://blog.csdn.net/ll148305879/article/details/91433089经常忘记SPI4种工作模式,学了忘了,现在记下方便以后查阅。在芯片资料上极性和相位一般表示为CPOL(Clock POLarity)和CPHA(Clock PHAse), 极性和相位组合成4种工作模式。CPOL CPHAMODE0 0 0MODE1 0 1MODE2 1 0MODE3原创 2022-01-25 11:36:29 · 494 阅读 · 0 评论 -
lm8333 & ADP5587添加键盘背光代码
lm8333添加键盘背光代码https://blog.csdn.net/yqj1123/article/details/38821087?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164281697016780366535760%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=164281697016780366535760&原创 2022-01-22 10:06:27 · 363 阅读 · 0 评论 -
正点原子Linux阿尔法开发板4.3 寸多点电容触摸屏测试问题和gt9xx系列linux驱动移植
正点原子Linux阿尔法开发板4.3 寸多点电容触摸屏测试问题和gt9xx系列linux驱动移植4.3 寸多点电容触摸屏测试问题正点原子gt9xx系列linux驱动移植1.首先我们要获取驱动文件2.将t9xx.c和gt9xx.h放至正点原子教程源码drivers/input/touchscreen/路径下3.在内核菜单中去配置gt9xx的驱动,把它编译进内核。要显示menuconfig菜单,首先得安装一些库4.修改设备树再添加中断管脚的pinmux设置在如下位置添加以下内容5.测试触摸是否可用,使用如下指令原创 2022-01-21 08:23:55 · 3306 阅读 · 0 评论 -
Linux系统下使用vscode搭建内核开发环境
Linux系统下使用vscode搭建内核开发环境原文链接:https://blog.csdn.net/u010252464/article/details/116332878概述在见识到source insight在追踪内核代码方面的强大能力后,习惯使用vscode的我顿时对source insight产生了兴趣,但随后我就发现自己还是不习惯使用source insight,于是折腾起vscode来,看看能不能借助vscode的各种插件来实现强大如source insight那样的内核代码追踪功能。原创 2022-01-20 10:07:13 · 4754 阅读 · 0 评论 -
Linux下电容触摸屏实验-Tslib移植和使用
Linux下电容触摸屏实验-Tslib移植和使用使用 Linux 内核自带的 ft5426 驱动在 Linux 内核中集成了许多电容触摸芯片的驱动,其中就包括我们使用的 ft5426 的驱动。所以我们来使用一下 Linux 内核自带的 ft5426 驱动文件。在使用之前需要先将前面我们添加的 ft5426.c 驱动文件去除掉,只 需 要 修 改 drivers/input/touchscreen/Makefile 这个文件即可,将下面这一行删除掉:obj-y += ft54266.o内核自带的原创 2022-01-19 16:58:35 · 1222 阅读 · 0 评论 -
imx6用文件io操作gpio
imx6用文件io操作gpio1 在用户空间配置并操作GPIO的必要性2 IMX6UL处理器GPIO编号算法3 Linux下用文件IO的方式操作GPIO/sys/class/gpio 的使用说明示例代码1 在用户空间配置并操作GPIO的必要性有时,为了快速方便的测试IO口,我们可以将GPIO暴露给用户空间,直接在用户空间配置并操作GPIO,前提是没有驱动使用这个GPIO。2 IMX6UL处理器GPIO编号算法GPIO计算公式: id = (m - 1) * 32 + n例如:有g原创 2022-01-19 13:19:25 · 1512 阅读 · 0 评论 -
Linux 设备驱动开发思想 —— 驱动分层与驱动分离
Linux 设备驱动开发思想 —— 驱动分层与驱动分离一、设备驱动的分层思想二、主机驱动和外设驱动分离思想主机、外设驱动分离的意义原文链接:https://blog.csdn.net/zqixiao_09/article/details/51088887前面我们学习I2C、USB、SD驱动时,有没有发现一个共性,就是在驱动开发时,每个驱动都分层三部分,由上到下分别是:1、XXX 设备驱动2、XXX 核心层3、XXX 主机控制器驱动而需要我们编写的主要是设备驱动部分,主机控制器驱动部分也有少量编写原创 2022-01-18 17:16:15 · 1173 阅读 · 0 评论 -
一张图掌握 Linux platform 平台设备驱动框架
一张图掌握 Linux platform 平台设备驱动框架!一、总线驱动模型简介1. 总线2. 总线设备(硬件)3. 设备驱动(软件)二、platform 平台总线1. platform_device2. platform_driver三、实例1. 设备 platform_device2. 驱动 platform_driver四、测试1. 驱动和设备的 Makefile2. 运行【参考】原文链接:https://blog.csdn.net/qq_16504163/article/details/11856原创 2022-01-18 16:49:06 · 728 阅读 · 0 评论 -
linux新字符设备驱动
linux 新字符设备驱动1 linux系统设备分类1.1 linux设备驱动之字符设备驱动linux设备驱动之字符设备驱动1.2 字符设备、字符设备驱动与用户空间访问该设备的程序三者之间的关系1.3 用户空间访问该设备的程序2 字符设备驱动模型2.1 cdev 结构体解析2.2 设备号相应操作实例hello.c测试程序 test.cmakefile众所周知,字符设备是Linux下最基本,也是最常用到的设备,它是学习linux驱动入门最好的选择。计算机的很多东西都是相通的,掌握了其中一块,其它的就触类旁通原创 2022-01-18 10:15:42 · 1262 阅读 · 0 评论 -
Linux添加PCF8563 RTC支持
文章目录1. 添加驱动支持2. 添加设备树3. 测试原文链接:https://blog.csdn.net/WXXGoodJob/article/details/88692949SOC:RK3288kernel:Linux4.11. 添加驱动支持Device Drivers ---> [*] Real Time Clock ---> [*] Set system time from RTC on startup and resume原创 2022-01-17 14:50:47 · 1519 阅读 · 0 评论 -
linux下的SPI/I2C驱动如何管理多个相同的设备,设备地址不同
linux下的SPI/I2C驱动如何管理多个相同的设备,设备地址不同问题一个驱动程序对应多个设备1. 对于驱动程序中有两个关键的结构体:2. 一个驱动多个设备的程序思路:3. 程序:运行结果问题linux下的I2C驱动如何管理多个相同的设备,设备地址不同。使用linux提供的I2C的框架,通过id来匹配设备。如何管理多个相同的设备,设备地址不同。一个驱动程序对应多个设备原文链接:https://blog.csdn.net/qqliyunpeng/article/details/52387525原创 2022-01-17 11:16:08 · 2376 阅读 · 0 评论 -
i2c-tools使用及调试
i2c-tools使用及调试原文链接: https://blog.csdn.net/mantis_1984/article/details/18254767/i2c-tools工具是一个专门调试i2c的,开源,可获取挂载的设备及设备地址,还可以在对应的设备指定寄存器设置值或者获取值等功能。一、下载i2c-tools,交叉编译1、从开源网站http://dl.lm-sensors.org/i2c-tools/releases/下载i2c-tools,下载地址: https://www.kernel.原创 2022-01-17 08:29:59 · 3952 阅读 · 0 评论 -
Linux SPI驱动框架
Linux SPI总线使用原文链接:https://blog.csdn.net/weixin_42397613/article/details/105018016简介SPI总线是很常用的总线类型,有好多设备的数据接口都采用了SPI总线,比如ICM20608加速度陀螺仪传感器。在Linux中,SPI设备是采用了Linux惯用的设备模型:driver->bus->device,此总线类型是SPI总线,driver就是我们针对某一SPI设备所编写的设备驱动,使用bus给我们提供的SPI总线操控原创 2022-01-14 14:21:34 · 2287 阅读 · 0 评论 -
使用IDE(vs code)进行嵌入式linux驱动开发
使用IDE(vs code)进行嵌入式linux驱动开发原文链接:https://blog.csdn.net/y24283648/article/details/107981315背景早期的ubuntu版本上没有好的可用的IDE,那个时候嵌入式linux驱动开发人员多使用vim进行编码;而对于没有图像界面的linux服务器,开发人员更是只能选择vim这一编辑工具。但是,接触过IDE的人会感觉到vim的不方便:需要记一些指令,而且没有代码自动补全,没有代码提示,没有括号自动补全,没有回车后自动缩进等等。原创 2022-01-09 17:49:47 · 2926 阅读 · 1 评论