应用程序开发方式 ? 在Linux下开发应用程序可以调用两种接口来实现,一种是直接调用系统调用接口,另一种是调用库函数来实现。 1、什么是系统调用?...系统调用(System Call)是操作系统提供的服务,是应用程序与内核通信的接口。...Linux提供的系统调用包含的内容有:文件操作、进程控制、系统控制、内存管理、网络管理、socket套接字、进程间通信、用户管理等。 ? ? ? ?...实例:文件操作 Linux下文件操作应用程序结构如下: ? (图片来源:野火Linux开发实战指南) Linux下,“一切皆文件”。...相关参考书籍: 《Linux环境编程:从应用到内核》 《野火Linux开发实战指南》 《嵌入式Linux上的C语言编程实践》 ?
写这篇文章的原因:因为在linux开发串口应用的时候,遇到了问题,让遇到相同问题的人少走点弯路: ①读串口数据的时,需要接受换行符才能返回。...对于 linux的开发板来说,串口的驱动是不需要我们去开发,我目前是在内核4.9上开发,只需要修改一下设备树就可以了。所以直接对设备文件进访问就可以了。...Linux 没有实现这一位,总是将它视为已设置。 ②c_oflag: OPOST:启用具体实现自行定义的输出处理。...FLUSHO:(不属于 POSIX; Linux 下不被支持) 输出被刷新。这个标志可以通过键入字符 DISCARD 来开关。...VSWTCH:(not in POSIX; not supportedunder Linux; 0, NUL) 开关字符。(只为 shl 所用。)
文章目录 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 初识进程 在日常工作/学习中,读者可能会经常听到如下一些词:“作业”,“任务”,“开了几个线程”,“创建了几个进程”,“多线程”,“多进程”等等。...本篇主要讨论linux进程间通信方式,这个主题拆分开始来看,分为三个部分:linux(操作系统)、进程、进程间通信。Linux操作系统本篇暂且不谈,我们主要来关注后两个部分:进程,以及进程间通信。...在linux下,内存空间被划分为用户空间和内核空间,应用程序开发人员开发的应用程序都存在于用户空间,绝大部分进程都处在用户空间;驱动程序开发人员开发的驱动程序都存在于内核空间。 ...应用程序使用IPC通信的一般步骤如下: 首先生成一个key值。
文章目录 8 ALSA应用开发 8.1 音频相关概念 8.1.1 采样频率 8.1.2 量化位数 8.2 ALSA架构 8.2.1 ALSA架构介绍 8.3 移植ALSA库及工具 8.3.1 ALSA库下载...AlsaPlayback类中成员函数的实现 8.9 基于ALSA音频的录制 8.9.1 程序设计 8.9.2 AlsaPlay类的定义 8.9.3 AlsaCapture类中成员函数的实现 8 ALSA应用开发...ALSA 是Linux内核2.6后续版本中支持音频系统的标准接口程序,由ALSA库、内核驱动和相关测 试开发工具组成,更好的管理Linux中音频系统。 本小节将介绍ALSA的架构。...8.2.1 ALSA架构介绍 ALSA是Linux系统中为声卡提供驱动的内核组件。它提供了专门的库函数来简化相应应用程序的编写。相较于OSS的编程接口,ALSA的函数库更加便于使用。 ...ALSA系统包括7个子项目: 驱动包alsa-driver 开发包alsa-libs 开发包插件alsa-libplugins 设置管理工具包alsa-utils OSS接口兼容模拟层工具alsa-oss
文章目录 11 PWM编程应用开发 11.1 PWM概述 11.1.1 PWM的参数说明 11.2 用户层查看PWM 11.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,是脉冲宽度调制缩写...除了在调光电路应用,还有在直流斩波电路、蜂鸣器驱动、电机驱动、逆变电路、加湿机雾化量等都会有应用。...= 3) { usage(); return -1; } pwm_setup(); } return 0; } 11.4 PWM应用编程 The.../init.h> #include #include #include #include <asm/
文章目录 10 RTC应用开发 10.1 RTC的作用及时间表示 10.2 RTC的操作命令 10.2.1 系统时间和硬件时间 10.2.2 系统时间操作命令 10.2.3 硬件时间操作命令 10.3...tm 结构 10.3.2时间相关的函数 1.时间格式化函数 2.localtime函数 3.mktime函数 4.asctime函数 5.ctime函数 10.4 RTC时间的编程实例 10 RTC应用开发...实时时钟芯片是日常生活中应用最为广泛的电子器件之一,它为人们或者电子系统提供精确的实时时间。...不同的时钟芯片内部机制不一样,时间数据存储格式、读写操作方式也不一样,Linux系统和驱动封装了不同时钟芯片的操作细节,为应用程序提供了统一的时间操作接口。 ...因此系统电源掉电后RTC时间仍然能够正常运行,Linux系统中硬件时钟的基本目的是在Linux不运行时保持时间。 在Linux启动时,将系统时间从硬件时钟初始化,然后不再使用硬件时钟。
文章目录 1 Framebuffer应用开发 1.1 LCD Framebuffer操作原理 1.2 Framebuffer API接口 1.2.1 open系统调用 1.2.2 ioctl系统调用 1.2.3...使用freetype 1.5.1 矢量字体引入 1.5.2 Freetype理论介绍 1.5.2 在LCD上显示一个矢量字体 1.5.3 在LCD上令矢量字体旋转某个角度 1 Framebuffer应用开发...由此可知,我们应用程序只需要针对Framebuffer操作即可,其他交给驱动程序和硬件。...-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/include/ 1.5.2 freetype库,头文件移植至开发板.../arm-linux-gnueabihf/libc/usr/lib/so 复制到开发板的库文件目录中 注:链接文件需要保持它的链接属性(即加-d选项)。
文章目录 5 线程编程应用开发 5.1 线程的使用 5.1.1 为什么要使用多线程 5.1.2 线程概念 5.1.3 线程的标识pthread_t 5.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 线程编程应用开发...本章节来讨论Linux下POSIX线程。
文章目录 13 CAN编程应用开发 13.1 CAN介绍 13.1.1 CAN是什么?...报文分类 13.5.2 CAN 应用报文应用分析及实例 13.5.2.1 CAN 应用报文定义 13.5.2.2 CAN应用报文发送规则 13.5.2.3 汽车CAN应用报文发送应用实例 13CAN编程应用开发...在汽车工业,许多制造商 都应用他们自己的标准。 表格 OSI开发系统互联模型 序号 层次 描述 7 应用层 最高层。用户、软件、网络终端等之间用来进行信息交换。...这里电路只是对比了解一下,做linux应用可以不需要关注底层驱动处理。 那我们现在按照14.3章节构建STM32下CAN应用编程的框架,一步一步编写linux下socketCAN的应用编程。...先给100ask_imx6ull开发板上电,打开串口: 输入root用户登录进入开发板linux系统; 然后挂载nfs,操作如下: Mount -t nfs -o nolock 192.168.1.100
文章目录 14存储设备应用开发 14.1 SD/TF卡,U盘使用步骤 14.1.1 SD/TF卡,U盘的硬件接口 14.1.2 确定设备点 14.1.3 分区 14.1.4 格式化并挂载 14.1.5...介绍分区表 14.2 自动挂载U盘 14.2.1 udev规则 14.2.2 正则表达式 14.2.3 自动挂载U盘 14.3 挂载后就是一般的读写文件 14存储设备应用开发 14.1 SD/TF卡,U...14.2 自动挂载U盘 14.2.1 udev规则 udev是Linux(linux2.6内核之后)默认的设备管理工具。...,查看电脑上修改的内容在开发板上是否显示。...在111.txt中添加abc,在222.txt中添加100ask,保存,弹出U盘,插入开发板。 通过cat命令查看内容,如下图 显示的内容正确,以后我们就可以通过U盘把电脑的东西往开发板上搬了。
作者 良许 一个热爱技术的程序猿 前言 在 「关于我 」那篇博文里,朋友们应该知道了我不是科班出身,是由机械强行转行到Linux应用开发方向。...底层驱动已经由厂家写好了,我们要做的工作就是在SDK基础上做应用做二次开发。在这个过程中,我对敏捷开发有了初步的认识,看了 「高效程序员的45个习惯:敏捷开发修炼之道」这本书。...我的新岗位是Linux应用开发工程师,使用C++开发。而在那时,我既不会Linux,也不会C++,所以公司敢录用我真的是勇气可嘉。 从单片机到Linux又是一个比较大的跨度。...对于Linux层级的脚本应用,掌握一些基础的足够了。...以上就是我的Linux应用开发自学之路,虽然我离高手还有很长的距离,但我还是将自己的这段自学经历分享出来,希望能够帮助朋友们少走一些弯路,同时也期待和高手一起学习、提高。好了,今天的分享就至此为止。
我会实现一个守护进程,从这个程序你将了解,Linux 应用程序开发基本流程 我们将实现一个远程shell的功能,可以通过tcp协议,运行远程机器上的命令或shell脚本 通过这个命令可以实现批量操作,管理上千台服务器...后台运行 --daemon 参数实现后台运行,原理是首先通过os.fork()克隆一个进程,然后退出当前进程,克隆的新进程继续运行 如果是Shell程序,你可使用“&”符号后台运行,但作为一个应用程序,...vsftpd.restart = /etc/init.d/vsftpd restart vsftpd.status = /etc/init.d/vsftpd status 4. init.d 脚本 Linux...init.d下面的脚本来管理 当人你也可以直接运行命令: nodekeeper --daemon --host localhost --port 7800 但这样只能算是一个半成品,也不够专业,我们写的是linux...运用程序,必须遵循Linux规范,所有要实现一个init.d脚本 $ cat nodekeeper #!
文章目录 6 网络编程应用开发 6.1 网络编程简介 6.1.1 五层因特网协议栈 6.1.2 传输层和应用层的常见协议 6.2 网络编程之TCP/UDP比较 6.2.1 TCP和UDP 原理上的区别...6.5 UDP编程简单示例 6.5.1 服务器端代码 6.5.2 客户端代码 6.5.2.1 客户端程序1 6.5.2.2 客户端程序2 6.5.3 Makefile文件 6.5.4 执行 6 网络编程应用开发...五层因特网协议栈 应用层:应用层是网络应用程序及它们的应用层协议存留的地方。 运输层:因特网的运输层在应用程序端点之间传从应用层报文。...6.1.2 传输层和应用层的常见协议 我们重点介绍和应用层编程关系密切的应用层和运输层。 应用层: 因特网的应用层包含很多协议,例如HTTP,SMTP,和 FTP。...应用层的协议分布在多个端系统上,一个端系统中的应用程序使用协议与另一个端系统中的应用程序交换信息分组。
文章目录 3 输入系统应用开发 3.1 什么是输入系统?...百问网imx6ul开发板触摸屏事件读取 3 输入系统应用开发 3.1 什么是输入系统? ...3.2 输入系统应用框架描述 在Linux输入系统中,主要分三层进行管理,分别是input core(输入系统核心层)、drivers(输入系统驱动层)以及event handlers(输入系统事件层...3.6 输入系统应用编程实战三:百问网imx6ul开发板触摸屏事件读取 在前面,我们已经熟悉了鼠标、键盘的基本操作,但发现一个规律,那就是编程方法类似,唯一不同的地方就是获取的事件类型以及事件值不同...,不是在PC端) 接下来启动开发板,然后串口终端输出rz命令,等待接收PC端的文件,这里我们将test_touchscreen这个文件传输到开发板。
文章目录 16 MQTT协议分析应用开发 16.1 mqtt协议介绍 16.1.1 概述 16.1.2 特点 16.1.3 应用 16.2 mqtt协议报文格式组成 16.2.1 mqtt控制报文结构...UNSUBSCRIBE ACK抓包报文 16.3.12.3 c语言构造unsubscribe报文 16.3.14 服务端与客户端交互操作过程 16.3.14.1 编译 16.3.14.2 执行 16 MQTT协议分析应用开发... MQTT协议广泛应用于物联网、移动互联网、智能硬件、车联网、电力能源等领域。...这个选择取决于具体的应用。 清理会话标志设置为 1 的客户端不会收到旧的应用消息, 而且在每次连接成功后都需要重新订阅任何相关的主题。...为了将应用消息转发给与那些订阅匹配的主题, 服务端发送 PUBLISH 报文给客户端。 SUBSCRIBE报文也(为每个订阅)指定了最大的 QoS 等级, 服务端根据这个发送应用消息给客户端。
文章目录 2 图像处理应用开发 2.1 BMP图像处理 2.1.1 BMP文件格式解析 2.1.2 代码实现:将BMP文件解析为RGB格式,在LCD上显示 2.2 JPEG图像处理 2.2.1 JPEG...2.4.1 图像的缩放 2.4.1.1 图像缩放算法浅析 2.4.1.2源码编写:图像缩放算法 2.4.2 图像的旋转 2.4.2.1 图像旋转算法浅析 2.4.2.2 源码编写:图像旋转算法 2 图像处理应用开发...2.1.2 代码实现:将BMP文件解析为RGB格式,在LCD上显示 让BMP文件在开发板的LCD上显示出来,有几个需要注意的点: 开发板LCD上的显示格式是RGB格式的,而且有多种表示格式:可能用2字节表示...相对于BMP格式的文件,JPEG由于压缩算法的关系,其文件解析较为复杂,我们可以利用Linux系统开源的优点,使用开源工具对jpeg文件进行格式的解析和转换。 ...在使用libjpeg之前,我们先要交叉编译libjpeg的库文件和头文件并存到开发板的文件系统中。
文章目录 9 GPIO编程应用开发 9.1 GPIO编程基础介绍 9.2 GPIO编程软件接口 9.2.1 控制接口 9.2.2 GPIO信号 9.2.3 GPIO控制器 9.3 IMX6ULL开发板GPIO...实际编程操作 9.4.1 导出GPIO口 9.4.2 设置GPIO方向 9.4.3 GPIO输出实验-LED输出控制 9.4.4 GPIO输入试验-按键值读取 9.4.5 LED和按键控制实验 9 GPIO编程应用开发...控制器实现的第一个GPIO. ” ngpio”属性,用于表示该控制器支持多少个GPIO,支持的GPIO编号为从N到N+ngpio-1 ” label”属性,用于判断控制器,并不总是唯一的 9.3 IMX6ULL开发板...接下来,我们以板载的LED和按键各自对应的GPIO为例来说明如何在实际应用中计算GPIO编号。 9.3.1 LED的GPIO编号计算 从原理图中找到对应LED的设计,具体的连接如下图所示。
文章目录 15 MQTT协议分析应用开发 15.1 mqtt协议介绍 15.1.1 概述 15.1.2 特点 15.1.3 应用 15.2 mqtt协议报文格式组成 15.2.1 mqtt控制报文结构...UNSUBSCRIBE ACK抓包报文 15.3.12.3 c语言构造unsubscribe报文 15.3.14 服务端与客户端交互操作过程 15.3.14.1 编译 15.3.14.2 执行 15 MQTT协议分析应用开发... MQTT协议广泛应用于物联网、移动互联网、智能硬件、车联网、电力能源等领域。...这个选择取决于具体的应用。 清理会话标志设置为 1 的客户端不会收到旧的应用消息, 而且在每次连接成功后都需要重新订阅任何相关的主题。...为了将应用消息转发给与那些订阅匹配的主题, 服务端发送 PUBLISH 报文给客户端。 SUBSCRIBE报文也(为每个订阅)指定了最大的 QoS 等级, 服务端根据这个发送应用消息给客户端。
在Linux中开发量测应用
为了解BMP格式,这篇文章就采用Linux开发板作为实验平台,在LCD屏上读取BMP图片,完成绘制,不需要借助任何第三方库,全部由纯C语言代码一行一行敲出来,深入理解Linux下帧缓冲编程框架、BMP图片的存储结构原理...2.1 封装LCD屏画点函数 #include #include #include #include unsigned...#include #include #include #include #include <sys/ioctl.h
领取专属 10元无门槛券
手把手带您无忧上云