![](https://img-blog.csdnimg.cn/2019092715111047.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
正点 Linux C 应用编程
文章平均质量分 96
正点Linux C 应用编程学习
行稳方能走远
日日行,不怕千万里;常常做,不怕千万事
展开
-
CAN 应用编程
CAN 基础知识什么是CAN?CAN 的特点CAN 的电气属性CAN 网络拓扑CAN 总线通信模型CAN 帧的种类SocketCan 应用编程创建socket 套接字将套接字与CAN 设备进行绑定设置过滤规则数据发送/接收回环功能设置CAN 应用编程实战CAN 数据发送实例CAN 数据接收实例原创 2023-08-31 08:22:19 · 1077 阅读 · 0 评论 -
Linux MQTT 物联网通信
目录物联网曾被认为是继计算机、互联网之后,信息技术行业的第三次浪潮。随着基础通讯设施的不断完善,尤其是5G 的出现,进一步降低了万物互联的门槛和成本。物联网本身也是AI 和区块链应用很好的落地场景之一,各大云服务商也在纷纷上架物联网平台和服务。物联网通讯是物联网的一个核心内容,目前物联网的通讯协议并没有一个统一的标准,比较常见的有MQTT、CoAP、DDS、XMPP 等,在这其中,MQTT(消息队列遥测传输协议)应该是应用最广泛的标准之一。目前,MQTT 已逐渐成为IoT 领域最热门的协议,也是国内外原创 2022-03-05 10:58:16 · 7197 阅读 · 0 评论 -
Linux网络基础&socket编程
网络通信概述网络互连模型:OSI 七层模型TCP/IP 四层/五层模型数据的封装与拆封IP 地址IP 地址的编址方式IP 地址的分类特殊的IP 地址如何判断2 个IP 地址是否在同一个网段内TCP/IP 协议TCP 协议TCP 协议的特性TCP 报文格式建立TCP 连接:三次握手关闭TCP 连接:四次挥手TCP 状态说明UDP 协议端口号的概念socket 简介socket 编程接口介绍socket()函数bind()函数listen()函数accept()函数原创 2023-08-29 21:32:07 · 395 阅读 · 0 评论 -
CMake 入门与进阶
目录cmake 简介cmake 和Makefilecmake 的下载cmake 的使用方法在前面两篇内容中,我们编写了很多示例程序,但这些示例程序都只有一个.c 源文件,非常简单。所以,编译这些示例代码其实都非常简单,直接使用GCC 编译器编译即可,连Makefile 都不需要。但是,在实际的项目中,并非如此简单,一个工程中可能包含几十、成百甚至上千个源文件,这些源文件按照其类型、功能、模块分别放置在不同的目录中;面对这样的一个工程,通常会使用make 工具进行管理、编译,make 工具依赖于Makefi原创 2022-03-06 22:08:39 · 5622 阅读 · 1 评论 -
音频应用编程
ALSA 概述alsa-lib 简介sound 设备节点alsa-lib 移植编写一个简单地alsa-lib 应用程序一些基本概念打开PCM 设备设置硬件参数原创 2023-08-30 19:16:50 · 1799 阅读 · 0 评论 -
Linux系统看门狗应用编程
看门狗应用编程介绍打开设备获取设备支持哪些功能:WDIOC_GETSUPPORT获取/设置超时时间:WDIOC_GETTIMEOUT、WDIOC_SETTIMEOUT开启/关闭看门狗:WDIOC_SETOPTIONS喂狗:WDIOC_KEEPALIVE看门狗应用编程实战原创 2023-02-25 20:31:20 · 2825 阅读 · 1 评论 -
Linux串口应用编程
目录本小节我们来学习Linux 下串口应用编程,串口(UART)是一种非常常见的外设,串口在嵌入式开发领域当中一般作为一种调试手段,通过串口输出调试打印信息,或者通过串口发送指令给主机端进行处理;当然除了作为基本的调试手段之外,还可以通过串口与其他设备或传感器进行通信,譬如有些sensor 就使用了串口通信的方式与主机端进行数据交互。本章将会讨论如下主题内容。⚫ 串口应用编程介绍⚫ 应用编程实战...原创 2022-03-05 10:57:27 · 8280 阅读 · 0 评论 -
V4L2 摄像头应用编程
V4L2 简介V4L2 摄像头应用程序打开摄像头查询设备的属性/能力/功能设置帧格式、帧率原创 2023-08-30 08:40:09 · 753 阅读 · 0 评论 -
Linux系统PWM应用编程
应用层如何操控PWM编写应用程序在开发板上测试原创 2023-03-06 21:22:12 · 2212 阅读 · 5 评论 -
FrameBuffer 应用编程
什么是FrameBufferLCD 的基础知识使用ioctl()获取屏幕参数信息使用mmap()将显示缓冲区映射到用户空间LCD 应用编程练习之LCD 基本操作LCD 应用编程练习之显示BMP 图片BMP 图像介绍在LCD 上显示BMP 图像在开发板上测试在LCD 上显示jpeg 图像在LCD 上显示png 图片LCD 横屏切换为竖屏在LCD 上显示字符原创 2023-08-29 22:49:17 · 509 阅读 · 0 评论 -
移植使用tslib 库
tslib 简介tslib 移植下载tslib 源码编译tslib 源码tslib 安装目录下的文件夹介绍在开发板上测试tslibtslib 库函数介绍打开触摸屏设备配置触摸屏设备读取触摸屏数据基于tslib 编写触摸屏应用程序单点触摸应用程序多点触摸应用程序原创 2023-08-29 17:19:19 · 853 阅读 · 0 评论 -
输入设备应用编程
输入类设备编程介绍什么是输入设备input 子系统读取数据的流程应用程序如何解析数据读取struct input_event 数据在开发板上验证按键应用编程触摸屏应用编程解析触摸屏设备上报的数据获取触摸屏的信息单点触摸应用程序多点触摸应用程序鼠标应用编程原创 2023-08-29 22:34:09 · 468 阅读 · 0 评论 -
Linux系统GPIO应用编程
应用层如何操控GPIOGPIO 应用编程之输出GPIO 应用编程之输入GPIO 应用编程之中断在开发板上测试GPIO 输出测试GPIO 输入测试GPIO 中断测试原创 2023-03-04 21:41:16 · 3659 阅读 · 0 评论 -
Linux系统点亮LED
应用层操控硬件的两种方式sysfs 文件系统sysfs 与/sys总结标准接口与非标准接口LED 硬件控制方式编写LED 应用程序在开发板上测试原创 2023-02-20 22:08:35 · 2790 阅读 · 0 评论 -
线程与线程同步
目录上一章,学习了进程相关的知识内容,对进程有了一个比较全面的认识和理解;本章开始,将学习Linux应用编程中非常重要的编程技巧—线程(Thread);与进程类似,线程是允许应用程序并发执行多个任务的一种机制,线程参与系统调度,事实上,系统调度的最小单元是线程、而并非进程。虽然线程的概念比较简单,但是其所涉及到的内容比较多,所以本章篇幅会相对比较长,大家加油!本章将会讨论如下主题内容。⚫ 线程的基本概念,线程VS 进程;⚫ 线程标识;⚫ 线程创建与回收;⚫ 线程取消;⚫ 线程终止;⚫ 线程原创 2022-03-25 23:48:08 · 483 阅读 · 0 评论 -
Linux 进程
这步是关键,在子进程中调用上一小节给大家介绍的setsid()函数创建新的会话,由于之前子进程并不是进程组的组长进程,所以调用setsid()会使得子进程创建一个新的会话,子进程成为新会话的首领进程,同样也创建了新的进程组、子进程成为组长进程,此时创建的会话将没有控制终端。处理SIGCHLD 信号不是必须的,但对于某些进程,特别是并发服务器进程往往是特别重要的,服务器进程在接收到客户端请求时会创建子进程去处理该请求,如果子进程结束之后,父进程没有去wait 回收子进程,则子进程将成为僵尸进程;原创 2023-08-29 11:30:13 · 335 阅读 · 0 评论 -
Linux 信号
基本概念信号的分类可靠信号与不可靠信号实时信号与非实时信号常见信号与默认行为进程对信号的处理signal()函数sigaction()函数向进程发送信号kill()函数raise()alarm()和pause()函数alarm()函数pause()函数信号集初始化信号集测试信号是否在信号集中获取信号的描述信息strsignal()函数psignal()函数信号掩码(阻塞信号传递)阻塞等待信号sigsuspend()实时信号sigpending()函数发送实时信原创 2023-08-29 16:23:27 · 435 阅读 · 0 评论 -
文件属性与目录
Linux 系统中的文件类型普通文件目录文件字符设备文件和块设备文件符号链接文件管道文件套接字文件总结stat 函数struct stat 结构体st_mode 变量struct timespec 结构体练习fstat 和lstat 函数fstat 函数lstat 函数文件属主有效用户ID 和有效组IDchown 函数fchown 和lchown 函数文件访问权限普通权限和特殊权限目录权限检查文件权限access修改文件权限chmodumask 函数文件的原创 2023-08-29 20:46:21 · 405 阅读 · 0 评论 -
高级 IO(非阻塞、多路复用、异步、存储映射、文件锁)
本小节我们将分别演示使用阻塞式I/O 和非阻塞式I/O 对文件进行读操作,在调用open()函数打开文件时,参数flags指定O_NONBLOCK 标志,open()调用成功后,后续的I/O 操作将以非阻塞式方式进行;这就是非阻塞I/O 的打开方式,如果参数flags未指定O_NONBLOCK 标志,则默认使用阻塞式I/O 进行操作。对于普通文件来说,指定与未指定O_NONBLOCK 标志对其是没有影响,普通文件的读写操作是不会阻塞的,它总是以非阻塞的方式进行I/O 操作,这是普通文件本质上决定的。..原创 2022-06-03 20:03:37 · 575 阅读 · 0 评论 -
深入探究文件I/O
Linux 系统如何管理文件静态文件与inode文件打开时的状态返回错误处理与errnostrerror 函数perror 函数exit、_exit、_Exit_exit()和_Exit()函数exit()函数空洞文件概念实验测试O_APPEND 和O_TRUNC 标志O_TRUNC 标志O_APPEND 标志多次打开同一个文件验证一些现象多次打开同一文件进行读操作与O_APPEND 标志复制文件描述符dup 函数dup2 函数文件共享原子操作与竞争冒险竞争冒险原创 2023-02-26 17:06:02 · 631 阅读 · 0 评论 -
Linux系统信息与系统资源
目录系统信息系统标识unamesysinfo 函数gethostname 函数sysconf()函数时间、日期时间的概念Linux 系统中的时间获取时间time/gettimeofday时间转换函数设置时间settimeofday总结进程时间times 函数clock 函数产生随机数休眠秒级休眠: sleep微秒级休眠: usleep高精度休眠: nanosleep申请堆内存在堆上分配内存:malloc 和free在堆上分配内存的其它方法分配对其内存在应用程序当中,有时往往需要去获取到一些系统相关的信息,原创 2022-03-25 23:41:25 · 1310 阅读 · 0 评论