
Linux系统编程与驱动开发
文章平均质量分 77
订阅专栏可看全部文章(订阅前,大家可以先点击专栏名称,进入专栏文章列表查看本专栏的全部文章目录)。
包含音视频开发、QT软件开发、嵌入式Linux驱动开发、移植、交叉编译、根文件系统制作、系统编程(Linux基本命令、Linux文件编程、网络编程、进程、线程、Shell、Makefile等等)
优惠券已抵扣
余额抵扣
还需支付
¥29.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
DS小龙哥
CSDN专家博主、嵌入式领域优质创作者、华为云物联网论坛优质版主、51CTO专家博主、阿里云专家博主、掘金优质创作者、infoQ优质创作者、发烧友优质专栏创作者。
博客会持续分享单片机基础知识、各种完整的项目案例。 主要是分享的案例: 物联网项目开发案例、音视频项目开发案例。
展开
-
基于Linux系统(迅为iTOP-4412)设计的倒车雷达系统
这是一个基于嵌入式 Linux 系统设计的倒车雷达预警系统。该系统支持激光测距功能,可设置报警范围距离,蜂鸣器根据距离不同进行调整声音频率,LCD 显示屏实时显示倒车影像画面。系统采用 ITOP-4412 精英版开发板,运行 Linux 系统版本为 3.0。屏幕采用 4.3 寸 LCD 屏,分辨率为 480*272,LCD 的设备节点是/dev/fb0,使用标准的帧缓冲框架进行开发。摄像头采用 UVC 免驱摄像头,通过标准 V4L2 框架读取数据进行显示。原创 2023-11-27 10:45:39 · 523 阅读 · 0 评论 -
Linux下使用libuvc读取控制USB免驱摄像头
libuvc是一个开源的库,用于在Linux和其他操作系统上与USB视频设备进行交互。提供了一组函数和接口,使开发人员可以轻松地访问和控制USB摄像头。原创 2023-09-13 10:12:46 · 3118 阅读 · 0 评论 -
(exynos4412)Tiny4412开发板PWM驱动编写测试
PWM(脉冲宽度调制)可以通过调整方波的脉冲宽度和频率来模拟模拟信号或控制外部设备。在 Linux 操作系统中,内核提供了丰富的驱动框架和接口,能够轻松开发自定义的驱动程序来与硬件进行交互。本文将介绍如何在 Linux 3.5 内核下编写一个 PWM 方波驱动,并通过应用层调用该驱动来实现对输出方波频率的灵活控制。原创 2023-08-23 13:54:40 · 278 阅读 · 0 评论 -
在(Linux)ubuntu下通过GTK调用libvlc开发视频播放器
本项目实现了一个基于GTK和libvlc的视频播放器。使用GTK创建GUI界面,使用libvlc播放视频。用户可以通过选择视频文件,然后启动播放器来观看视频。原创 2023-06-12 09:02:51 · 1166 阅读 · 1 评论 -
Linux下串口编程
inux下的串口编程是通过串口设备文件和串口通信的系统调用函数来实现的。Linux下的串口设备文件通常为/dev/ttyS或/dev/ttyUSB(*表示数字),这些设备文件代表了对应的串口硬件设备。原创 2023-05-24 23:01:01 · 2079 阅读 · 0 评论 -
Linux下V4l2框架编程_USB摄像头数据采集
v4L2是针对uvc免驱usb设备的编程框架,主要用于采集usb摄像头等。 这篇文章介绍V4L2框架读取摄像头数据的流程,介绍ioctl常用的命令参数,以及各种摄像头相关的结构体成员含义,最终完成数据采集。原创 2023-05-24 22:49:42 · 1587 阅读 · 0 评论 -
Linux下IIC驱动编写,介绍IIC子系统框架的使用
I2C总线数据传输速率在标准模式下可达 100kbit/s,快速模式下可达 400kbit/s,高速模式下可达 3.4Mbit/s。一般通过 I2C 总线接口可编程时钟来实现传输速率的调整。I2C 总线上的主设备与从设备之间以字节(8 位)为单位进行双向的数据传。原创 2022-11-19 00:00:00 · 1389 阅读 · 1 评论 -
Linux下驱动开发_块设备驱动开发(硬件上采用SD卡+SPI协议)
这一篇文章将采用SD卡作为存储硬件,利用SPI协议与SD卡通信,完成块设备驱动开发测试。 SD卡可以更加形象的表示块设备开发过程,明白硬件如何交互,完成数据读写。原创 2022-11-18 15:58:39 · 2322 阅读 · 1 评论 -
Linux下RTC驱动开发(硬件采用DS1302)
在Linux系统上主要有两个时间基准,一个数是系统时间和,一个是RTC 时间。 其中系统时间是系统运行时由定时器(滴答定时器)维护的时间,掉电不保存数据。而RTC时间,是由RTC实时时钟芯片维护的时间,一般都接了后备电源(常见表现行为就是一颗纽扣电池供电),系统掉电后它不受影响,还是会运行保证时间准确。 每次系统开机时,系统会从RTC芯片里读取当前时间给系统时间赋值,保证系统开机之后时间也是准确的原创 2022-11-12 09:34:54 · 1518 阅读 · 0 评论 -
Linux下驱动开发_块设备驱动开发(内存模拟存储)
块设备驱动块是Linux下3大设备驱动框架之一,块设备主要是针对存储类型的设备设计的驱动,配合文件系统完成数据存储。原创 2022-10-23 14:23:49 · 1236 阅读 · 0 评论 -
Linux 驱动开发:USB无线wifi驱动开发(MT7601)、完成WIFI管理工具安装
这篇文章会详细介绍WIFI驱动从哪里下载,下载下来如何修改进行编译安装测试,并交叉编译对应的WIFI工具,最终完成WIFI的基本使用,完成IP地址动态分配,热点连接,热点扫描、热点信息查看等等。原创 2022-10-22 14:44:42 · 3915 阅读 · 0 评论 -
Linux下编写ENC28J60网卡驱动,完善网络设备框架
对于网络设备而言,主要目的就是网络数据的收发,编写驱动时将linux网络设备驱动里的接口与实际网卡硬件的操作接口对应上,应用层就可以操作网卡完成网络通信了。底层驱动里编写网卡驱动与单片机一样。原创 2022-10-18 09:20:45 · 1145 阅读 · 0 评论 -
Linux下automake工具使用(自动构建Makefile文件)
linux环境下,当项目工程很大的时候,编译的过程很复杂,所以需要使用make工具,自动进行编译安装,但是手写makefile文件比较复杂,所幸在GNU的计划中,设计出了一种叫做Autoconf/Automake的工具,用来自动生成makefile文件,为编译和安装程序提供了一个方便快捷的入口。原创 2022-10-09 09:55:26 · 1723 阅读 · 0 评论 -
Linux系统下基础命令介绍
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。原创 2022-10-05 15:59:39 · 790 阅读 · 0 评论 -
Linux开发_CentOS7.4服务器安装NFS、NGINX服务器,ffmpeg、Qt环境
在CentOS7.4服务器版本的环境下搭建NFS服务器、安装ffmpeg、安装nginx服务器、部署Qt编译环境,配置NGINX为HTTP服务器,安装rtmp模块,完成rtmp视频推流,支持缓存视频到本地目录。原创 2022-09-19 11:23:02 · 857 阅读 · 2 评论 -
Linxux应用开发-串口下载命令rzsz交叉编译
rz/sz工具是通过Zmodem协议传输文件的命令,常用于Linux与windows之前的数据传输。这篇文章就介绍如何在交叉编译rz/sz命令,并在Linux开发板上完成测试。原创 2022-05-07 22:00:00 · 685 阅读 · 0 评论 -
Linux应用开发-libjpeg库交叉编译与使用
在开发板上如果想要显示jpeg格式的图片,必须用到libjpeg库,不可能自己去编写jpg的解码代码。libjpeg是一个完全用C语言编写的库,包含了被广泛使用的JPEG解码、JPEG编码和其他的JPEG功能的实现。这个库由独立JPEG工作组维护。原创 2022-05-06 22:00:00 · 1216 阅读 · 1 评论 -
Linux应用开发-LCD显示BMP图片
为了解BMP格式,这篇文章就采用Linux开发板作为实验平台,在LCD屏上读取BMP图片,完成绘制,不需要借助任何第三方库,全部由纯C语言代码一行一行敲出来,深入理解Linux下帧缓冲编程框架、BMP图片的存储结构原理。原创 2022-05-03 06:00:00 · 3241 阅读 · 1 评论 -
Linux小项目-行车记录仪项目设计
这篇文章就介绍在Linux最小系统开发板上如何实现行车记录仪的功能,开发板自带了8G的EMMC,也可以外扩SD卡。原创 2022-05-02 06:00:00 · 4684 阅读 · 2 评论 -
Linux应用开发-GPS电子围栏设计
GPS电子围栏这个功能是地图的一个扩展技术功能,通过地图经纬度在地图上圈一个范围,在这个范围内进出可以在服务器上进行实时记录,提示警报。现在的共享单车、共享汽车都有这个功能,限制车辆只能在某一个范围内使用,超出后就自动断电或者作出提示。要实现这个地理围栏,就需要实时获取当前的经纬度,然后调用地图SDK接口进行处理,完成围栏逻辑设计。原创 2022-05-04 06:00:00 · 3014 阅读 · 2 评论 -
Linux小项目-数码相册设计
这是基于Linux系统开发板设计一个小项目-数码相册,在LCD屏上可以显示完成常见的图片显示,翻页、旋转、缩放等功能。原创 2022-05-01 06:00:00 · 2624 阅读 · 0 评论 -
Linux小项目-广告机项目设计
在城市里,广告机大家应该都不陌生,在地铁、公交车、商场、银行、广场、电梯里很多人流量大的地方都有广告机,投放各种宣传广告。银行的广告机一般投放理财、贷款、活动、利率一些信息,酒店的广告机一般宣传自己的酒店设施、配置;电梯、地铁、公交车里的广告机主要是投放各个商家的广告,比如:附近哪家火锅店打折扣呀,饭店开张呀、商家的新产品上市等等。原创 2022-04-25 00:30:00 · 2153 阅读 · 1 评论 -
Linux小项目-倒车影像功能设计
要完成倒车影像整个项目,需要准备一个LCD屏,一个摄像头,一个超声波测距模块,一个蜂鸣器;摄像头采集车尾的实时画面,在LCD屏上完成显示,超声波测距模块用于测量车尾距离障碍物的距离,根据设置的距离跳转PWM操作蜂鸣器实现报警提示。原创 2022-04-23 23:30:00 · 3127 阅读 · 1 评论 -
Linux下播放器开发-交叉编译Mplayer
MPlayer是一款开源多媒体播放器,在主流的Linux、windows、Mac OS 都能运行,主要广泛用在Linux系统上; Mplayer不仅支持图形界面、也支持命令行播放。这篇文章就介绍如何将MplayerJ交叉编译移植到嵌入式开发板上运行,在命令行上正常的播放视频,LCD屏采用的帧缓冲驱动框架渲染图像。原创 2022-04-22 23:30:00 · 1305 阅读 · 1 评论 -
Linux下播放器开发-Mplayer命令行使用介绍
前面文章介绍了Linux下Mplayer播放的交叉编译、移植,在命令行上成功运行了mplayer播放器,完成了视频播放。mplayer支持二次开发,也支持命令行上直接使用;如果在命令行上直接运行,mplayer会默认捕获键盘事件,支持很多快捷键,也支持很多的命令行参数,可以完成视频播放、循环播放设置、播放列表设置、将视频里的音频文件输出保存,将视频帧保存为图片,设置播放速度等等。原创 2022-04-21 23:30:00 · 6423 阅读 · 1 评论 -
VM虚拟机上的网络设置
一般Linux编程时,经常都会使用虚拟机跑Linux系统,VMware Workstation Pro 虚拟机里的系统不管是Linux、还是windows、还是其他系统想要上网就必须配置好虚拟网络连接方式。VMware Workstation 支持共享、桥接,选择网卡的方法自定义上网方式。原创 2022-04-14 00:30:00 · 10024 阅读 · 0 评论 -
Linux下网络编程-UDP协议探测在线好友
UDP协议 相对TCP协议来讲属于不可靠协议,UDP协议是广播方式发送数据,没有服务器和客户端的概念。在Linux下使用socket创建UDP的套接字时,属性要选择数据报类型`SOCK_DGRAM`。原创 2022-04-13 00:30:00 · 649 阅读 · 0 评论 -
Linux下搭建简易的HTTP服务器完成图片显示
篇文章作为Linux下socket(TCP)网络编程的练习,使用C语言代码搭建一个简单的HTTP服务器,完成与浏览器之间的交互,最终在浏览器上显示一张图片;通过这个例子可以巩固socket里多线程使用,也可以方便学习了解HTTP协议。原创 2022-04-12 00:30:00 · 2258 阅读 · 5 评论 -
Linux下TCP网络编程-创建服务器与客户端
一、前言互联网概念诞生于20世纪60年代末,从9几年中国接入互联网开始到现在,生活的每个角落都能看到网络的使用。现在物联网时代、共享经济的到来,生活中不仅仅电脑、手机可以接入网络,身边的各个设备也能接入互联网了。 比如:市政路灯、污水井盖、家用电器,汽车等等。这篇文章介绍在Linux下的socket编程,完成TCP服务器、客户端的创建,实现数据通信。二、TCP协议介绍在Linux应用层做编程,接触到是传输层协议,TCP/UDP,如果搞Linux网络驱动开发(网卡驱动),那么底层的网络协议就会接触的更原创 2022-04-11 00:30:00 · 3216 阅读 · 3 评论 -
嵌入式Linux下完成LCD屏文字显示(帧缓冲框架)
帧缓冲框架是Linux下专门为显示类设备设计的接口,目的是将硬件和软件层分离开,方便应用层的编程,也方便应用层程序移植。帧缓冲框架向驱动层和应用层分别提供了一套标准接口,驱动层按照框架编写驱动,应用层按照框架编写应用程序。帧缓冲在/dev目录下生成的标准节点是fb,比如:/dev/fb0,/dev/fb1等等。原创 2022-04-01 23:30:00 · 5541 阅读 · 0 评论 -
Linux下BusyBox根文件系统制作
BusyBox 是一个集成了一百多个最常用linux命令和工具的软件。BusyBox 包含了一些简单的工具,例如ls、cat和echo等等,还包含了一些更大、更复杂的工具。有些人将 BusyBox 称为 Linux 工具里的瑞士军刀。简单的说BusyBox就好像是个大工具箱,它集成压缩了 Linux 的许多工具和命令,也包含了 Android 系统的自带的shell。BusyBox提供了一个比较完善的环境,可以适用于任何小的嵌入式系统。原创 2022-03-31 23:30:00 · 1175 阅读 · 0 评论 -
Linux驱动框架与杂项字符设备框架介绍
Linux下驱动框架分为3大类型: 1. 字符设备 ---------2. 块设备 存储设备 SD 硬盘3. 网络设备 网卡 无线 有线字符设备和块设备都会生成设备节点在/dev目录下。网络设备不会生成设备节点. 可以使用ifconfig查看原创 2022-03-30 23:30:00 · 678 阅读 · 0 评论 -
Linux驱动开发-外部中断的注册使用(按键为例)
前面有篇文章使用杂项设备完成了按键驱动的编写,实现了按键轮询检测,通过read函数向应用层传递按键值,这篇文章使用按键为例,介绍Linux内核里中断的注册方法,使用中断的方式检测按键是否按下,中断在单片机、设备驱动开发里使用的都非常多,可以更加实时的检测到按键触发的情况。原创 2022-03-29 22:30:00 · 603 阅读 · 0 评论 -
Linux驱动开发-内核共享工作队列
工作队列常见的使用形式是配合中断使用,在中断的服务函数里无法调用会导致休眠的相关函数代码,有了工作队列机制以后,可以将需要执行的逻辑代码放在工作队列里执行,只需要在中断服务函数里触发即可,工作队列是允许被重新调度、睡眠。原创 2022-03-28 23:30:00 · 530 阅读 · 0 评论 -
Linux驱动开发-内核定时器
内核定时器是内核用来控制在未来某个时间点(基于jiffies(节拍总数))调度执行某个函数的一种机制,相关函数位于 <linux/timer.h> 和 kernel/timer.c 文件中。原创 2022-03-25 00:30:00 · 1121 阅读 · 0 评论 -
Linux驱动开发-编写超声波测距模块的驱动
当前采用的这种超声波测距模块在各大高校实验室、毕设、课设里用的很多,原理很简单,通过声波测距,发出的声音碰到障碍物会反弹,声音在空气里传播的速度是已知的,根据时间就能计算出测量的距离。这款超声波模块内部自带了时间计算电路,型号是HC-SR04 ,它可提供 2cm-400cm 的非接触式距离感测功能,距精度可达高到 3mm; 整个模块包括了超声波发射器、 接收器与控制电路。原创 2022-03-24 00:30:00 · 1610 阅读 · 1 评论 -
Linux驱动开发-编写按键驱动
这篇文章介绍,如何使用杂项设备框架编写一个简单的按键驱动,完成编写、编译、安装、测试等流程,了解一个杂项字符设备驱动的开发流程。原创 2022-03-23 00:30:00 · 891 阅读 · 1 评论 -
Linux驱动开发-编写W25Q64(Flash)驱动
W25Q64是一颗SPI接口的Flash存储芯片,是华邦W25QXX系列里的一个具体型号,这个系列里包含了W25Q16,W25Q32,W25Q64,W5Q128等等。编程代码逻辑都差不多,主要是容量的区别。原创 2022-03-22 00:30:00 · 1961 阅读 · 0 评论 -
Linux驱动开发-编写VS1053芯片音频驱动
VS1053是一款硬件编解码的音频芯片,提供SPI接口和IIS接口两种通信协议,这篇文章是介绍在Linux下如果模拟SPI时序来操作VS1053完成录音、播放音频歌曲功能。但是没有注册标准的音频驱动,没有对接音频框架,只是在驱动层完成VS1053的直接控制,本篇的重点主要是介绍如何初始化开发板的GPIO口,使用Linux的延时函数,模拟SPI时序,代码写了两种版本,一种是直接通过`ioremap`直接映射GPIO口地址,完成配置,一种是直接调用官方内核提供的库函数接口,完成GPIO口初始化,控制。原创 2022-03-21 23:00:00 · 1902 阅读 · 1 评论 -
Linux驱动开发-编写RFID-RC522射频刷卡模块驱动
MFRC522是应用于13.56MHz非接触式通信中高集成度的读写卡芯片,针对“三表”应用推出的一款低电压、低成本、体积小的非接触式读写卡芯片,是智能仪表和便携式手持设备研发的较好选择。便携式手持设备研发的较好选择。MFRC522利用了先进的调制和解调概念,集成了在13.56MHz下所有类型的被动非接触式通信方式和协议。原创 2022-03-18 00:30:00 · 2847 阅读 · 0 评论