Linux应用开发
文章平均质量分 96
韦东山
深圳百问网科技有限公司技术总监,毕业于中国科学技术大学电子、软件专业双学位,10余年嵌入式一线开发经验, 畅销书<<嵌入式Linux应用开发完全手册>>作者, 擅长ARM/MIPS等架构的Linux底层系统开发, 曾为多家知名培训机构特邀讲师,2011年陆续录制的工程师必看教程------韦东山系列Linux/Android视频,有口皆碑。累计学员10万+,当之无愧成为嵌入式培训领域的佼佼者。
展开
-
Linux应用开发【第十六章】MQTT协议分析应用开发
文章目录16 MQTT协议分析应用开发16.1 mqtt协议介绍16.1.1 概述16.1.2 特点16.1.3 应用16.2 mqtt协议报文格式组成16.2.1 mqtt控制报文结构16.2.2 mqtt固定报头16.2.3 mqtt控制报文类型16.2.4 标记16.2.5 剩余长度16.2.5.1 示例16.2.6 可变报头16.2.7 有效载荷16.3 报文分析16.3.1 CONNECT-连接服务端16.3.1.1 connect固定报头16.3.1.2 协议名字节组成16.3.1.3 协议级别原创 2021-12-13 15:01:40 · 1856 阅读 · 2 评论 -
Linux应用开发【第十五章】存储设备应用开发
文章目录15 存储设备应用开发15.1 SD/TF卡,U盘使用步骤15.1.1 SD/TF卡,U盘的硬件接口15.1.2 确定设备点15.1.3 分区15.1.4 格式化并挂载15.1.5 介绍分区表15.2 自动挂载U盘15.2.1 udev规则15.2.2 正则表达式15.2.3 自动挂载U盘15.3 挂载后就是一般的读写文件15 存储设备应用开发15.1 SD/TF卡,U盘使用步骤15.1.1 SD/TF卡,U盘的硬件接口 如上图的100ask6ull开发板,⑦为USB口,U盘从这里插入原创 2021-12-13 15:01:26 · 1631 阅读 · 0 评论 -
Linux应用开发【第十四章】CAN编程应用开发
文章目录14 CAN编程应用开发14.1 CAN介绍14.1.1 CAN是什么?14.1.2 CAN的起源14.1.3 CAN传输模型14.1.4 CAN网络拓扑14.1.5 CAN物理特性14.1.6 CAN报文帧14.1.6.1 CAN报文格式14.1.6.2 CAN报文帧类型14.2 CAN编程框架创建14.3 STM32 CAN应用编程14.3.1 STM32 CAN接口电路14.3.2 STM32 CAN应用编程步骤14.3.2.1准备STM32工程模版**14.3.2.2** **编写CAN抽象原创 2021-12-13 15:01:13 · 4824 阅读 · 11 评论 -
Linux应用开发【第十二章】I2C编程应用开发
文章目录12 I2C编程应用开发12.1 I2C协议12.1.1 概述12.2.2 物理层1) 特性1:半双工(非全双工)2) 特性2:地址和角色可配置3) 特性3:多主机4) 特性4:传输速率5) 特性5:负载和距离12.2.3 协议层1) 数据有效性2) 起始和结束条件3) 应答4) 数据帧格式12.2 在linux系统下操作I2C总线的外设12.2.1 概述12.2.2 简述I2C的linux驱动1) I2C核心层:2) I2C总线驱动层:3) I2C总线驱动层:12原创 2021-12-13 15:00:59 · 6301 阅读 · 0 评论 -
Linux应用开发【第十一章】PWM编程应用开发
文章目录11 PWM编程应用开发11.1 PWM概述11.1.1 PWM的参数说明11.2 用户层查看PWM11.3 PWM的SYSFS使用11.4 PWM应用编程11.4.1 修改设备树11.4.2 修改配置文件11.4.3 添加驱动11.4.4 运行测试11 PWM编程应用开发11.1 PWM概述 PWM,英文名Pulse Width Modulation,是脉冲宽度调制缩写,它是通过对一系列脉冲的宽度进行调制,等效出所需要的波形(包含形状以及幅值),对模拟信号电平进行数字编码,也就是说通过调原创 2021-12-13 15:00:45 · 5003 阅读 · 0 评论 -
Linux应用开发【第十章】RTC应用开发
文章目录10 RTC应用开发10.1 RTC的作用及时间表示10.2 RTC的操作命令10.2.1 系统时间和硬件时间10.2.2 系统时间操作命令10.2.3 硬件时间操作命令10.3 RTC的数据结构和函数10.3.1 时间相关的数据结构1.time_t 类型:长整型2.struct timeb 结构3.struct timeval 和struct timezone结构4.struct tm 结构10.3.2时间相关的函数1.时间格式化函数2.localtime函数3.mktime函数4.asctime原创 2021-12-13 15:00:07 · 1268 阅读 · 1 评论 -
Linux应用开发【第九章】GPIO编程应用开发
文章目录9 GPIO编程应用开发9.1 GPIO编程基础介绍9.2 GPIO编程软件接口9.2.1 控制接口9.2.2 GPIO信号9.2.3 GPIO控制器9.3 IMX6ULL开发板GPIO编号的确定9.3.1 LED的GPIO编号计算9.3.2 按键的GPIO编号计算9.3.3 特殊情况下的GPIO编号计算9.4 实际编程操作9.4.1 导出GPIO口9.4.2 设置GPIO方向9.4.3 GPIO输出实验-LED输出控制9.4.4 GPIO输入试验-按键值读取9.4.5 LED和按键控制实验9 G原创 2021-12-13 14:59:54 · 2707 阅读 · 0 评论 -
Linux应用开发【第八章】ALSA应用开发
文章目录8 ALSA应用开发8.1 音频相关概念8.1.1 采样频率8.1.2 量化位数8.2 ALSA架构8.2.1 ALSA架构介绍8.3 移植ALSA库及工具8.3.1 ALSA库下载8.3.2 ALSA Lib编译8.3.3 ALSA Util编译8.3.4 ALSA库和工具移植入嵌入式平台8.4 ALSA的调试8.4.1 amixer8.4.2 aplay8.4.3 arecord8.5 常用接口说明8.5.1 PCM接口8.6 基于ALSA的音量控制程序设计8.6.1 程序设计8.6.2 Als原创 2021-12-13 14:59:38 · 4150 阅读 · 2 评论 -
Linux应用开发【第七章】摄像头V4L2编程应用开发
文章目录7 摄像头V4L2编程应用开发7.1 V4L2简介7.2 V4L2视频采集原理7.3 V4L2程序实现流程7.4 V4L2程序实例7.4.1 打开设备7.4.2 查询设备属性7.4.3 显示所有支持的格式7.4.4 设置图像帧格式7.4.5 申请缓冲区7.4.6 将申请的缓冲帧从内核空间映射到用户空间7.4.7 将申请的缓冲帧放入队列,并启动数据流7.4.8 启动捕捉图像数据7.4.9 出列采集的帧缓冲,并处理图像数据,然后再将数据帧入列7.4.10 停止捕捉图像数据7 摄像头V4L2编程应用开发原创 2021-12-13 14:59:15 · 4253 阅读 · 4 评论 -
Linux应用开发【第六章】网络编程应用开发
文章目录6 网络编程应用开发6.1 网络编程简介6.1.1 五层因特网协议栈6.1.2 传输层和应用层的常见协议6.2 网络编程之TCP/UDP比较6.2.1 TCP和UDP 原理上的区别6.2.2 为何存在UDP协议6.2.3 TCP/UDP网络通信大概交互图6.3 网络编程主要函数介绍6.3.1 socket函数6.3.2 bind函数6.3.3 listen函数6.3.4 accept函数6.3.5 connect函数6.3.6 send函数6.3.7 recv函数6.3.8 recvfrom函数6.原创 2021-12-13 14:58:53 · 1905 阅读 · 0 评论 -
Linux应用开发【第五章】线程编程应用开发
文章目录5 线程编程应用开发5.1 线程的使用5.1.1 为什么要使用多线程5.1.2 线程概念5.1.3 线程的标识pthread_t5.1.4 线程的创建5.1.5 向线程传入参数5.1.6 线程的退出与回收5.2 线程的控制5.2.1 多线程编临界资源访问5.2.2 互斥锁API简述5.2.3 多线程编执行顺序控制5.2.4 信号量API简述5.3 总结5 线程编程应用开发 本章将分为两大部分进行讲解,前半部分将引出线程的使用场景及基本概念,通过示例代码来说明一个线程创建到退出到回收的基本流程原创 2021-12-13 14:58:30 · 855 阅读 · 0 评论 -
Linux应用开发【第四章】Linux进程间通信应用开发
文章目录4 Linux进程间通信应用开发4.1 初识进程4.1.1 进程的概念4.1.1.1 程序4.1.1.2 进程4.1.1.3 进程和程序的联系4.1.1.4 进程和程序的区别4.1.2 进程的操作(创建、结束、回收)4.1.2.1 创建进程4.1.2.2 结束进程4.1.2.3 回收进程4.2 进程为什么需要通信4.3 进程通信之管道通信4.3.1 无名管道4.3.1.1 特点4.3.1.2 创建无名管道4.3.1.3 读、写、关闭管道4.3.1.4 无名管道实现进程间通信4.3.2 有名管道4.3原创 2021-12-13 14:57:59 · 2210 阅读 · 2 评论 -
Linux应用开发【第三章】输入系统应用开发
文章目录3 输入系统应用开发3.1 什么是输入系统?3.2 输入系统应用框架描述3.3 输入系统事件的读取与分析3.4 输入系统应用编程实战一:通用USB鼠标事件读取3.5 输入系统应用编程实战二:通用键盘事件读取3.6 输入系统应用编程实战三:百问网imx6ul开发板触摸屏事件读取3 输入系统应用开发3.1 什么是输入系统? 在了解输入系统之前,先来了解什么是输入设备?常见的输入设备有键盘、鼠标、遥控杆、书写板、触摸屏等等,用户通过这些输入设备与Linux系统进行数据交换,Linux系统为了统一原创 2021-12-13 14:57:37 · 1206 阅读 · 0 评论 -
Linux应用开发【第二章】图像处理应用开发
2 图像处理应用开发 前言:所有的图像文件,都是一种二进制格式文件,每一个图像文件,都可以通过解析文件中的每一组二进制数的含义来获得文件中的各种信息,如图像高度,宽度,像素位数等等。只是不同的文件格式所代表的二进制数含义不一样罢了。我们可以通过UltraEdit软件打开图像文件并查看里面的二进制数排列。2.1 BMP图像处理2.1.1 BMP文件格式解析 BMP是一种常见的图像格式,BMP文件可看成由4个部分组成:位图文件头(bitmap-file header)、位图信息头(bitmap-原创 2021-12-13 14:57:20 · 1445 阅读 · 0 评论 -
Linux应用开发【第一章】Framebuffer应用开发
文章目录1 Framebuffer应用开发1.1 LCD Framebuffer操作原理1.2 Framebuffer API接口1.2.1 open系统调用1.2.2 ioctl系统调用1.2.3 mmap系统调用1.3 在LCD上描点操作1.3.1 在LCD上显示点阵理论基础1.3.2 获取fb_var_screeninfo结构体1.3.3 根据fb_var_screeninfo计算变量1.3.4 使用mmap系统调用,映射内存1.3.5 描点函数编写1.4 在LCD上使用点阵写字1.4.1 在LCD上原创 2021-12-13 14:08:10 · 2375 阅读 · 1 评论