Linux应用开发
文章平均质量分 85
.
Super.Bear
https://github.com/Paraniod1
展开
-
Linux多线程C/C++
在 Linux 中,多线程编程可以显著提高应用程序的性能和响应能力。多线程允许程序在多个线程中并行执行,从而更好地利用多核处理器。Linux 中的多线程编程主要依赖于 POSIX 线程(pthread)库。这个库提供了创建、同步和管理线程的各种函数。使用 头文件可以实现多线程应用。原创 2024-07-24 21:39:25 · 1243 阅读 · 1 评论 -
龙芯2K1000LA移植交叉编译环境以及QT
嵌入式大赛结束了,根据这次比赛中记的凌乱的笔记,整理了一份龙芯2K1000LA的环境搭建过程,可能笔记缺少了一部分步骤或者错误,但是大致步骤可以当作参考。原创 2023-08-24 10:04:54 · 3996 阅读 · 14 评论 -
Linux之GPIO应用
在 Linux 系统下,一切皆文件。应用层操控底层硬件可以通过文件 I/O 的方式来实现,应用层通过对设备文件的 I/O 操作来操控硬件设备,设备文件其实是与硬件设备相互对应的。设备文件通常在/dev/目录下,/dev 目录下的文件称为设备节点。这也是驱动开发中常用的测试驱动程序方法。还有另外一种方式可以通过 sysfs 文件系统对硬件设备进行操控。原创 2022-09-18 11:34:56 · 3514 阅读 · 7 评论 -
Linux之串口应用
串口全称叫做串行接口,串行接口指的是数据一个一个的按顺序传输,通信线路简单。使用两条线即可实现双向通信,一条用于发送,一条用于接收。串口(UART)在嵌入式 Linux 系统中常作为系统的标准输入、输出设备, 系统运行过程产生的打印信息通过串口输出;串口也作为系统的标准输入设备, 用户通过串口与 Linux 系统进行交互。所以串口在 Linux 系统就是一个终端。终端 Terminal: 终端就是处理主机输入、输出的一套设备,它用来显示主机运算的输出,并且接受主机要求的输入。...原创 2022-08-30 21:37:36 · 6027 阅读 · 0 评论 -
Linux之音视频入门
mplayer是一个免费开源的视频播放器,视频播放器提供视频解码并播放的功能,支持各种常见格式的视频。madplay是一个开源的音频播放器,可以播放各种音乐格式的音频文件。-af volume=xxx :设置音量(-200 ~ +60)设置音量:-a -175 ~ +18(播放时按+/-调节)继续: killall -CONT madplay &停止: killall -KILL madplay &-zoom -x ** -y ## :指定播放分辨率。-geometry :指定播放位置(开发板无效)....原创 2022-08-30 11:03:36 · 2946 阅读 · 2 评论 -
Linux之V4L2驱动框架
V4L2(Video for linux two)是 Linux 内核中视频类设备的一套驱动框架,为视频类设备驱动开发和应用层提供了一套统一的接口规范。使用 V4L2 设备驱动框架注册的设备会在 Linux 系统/dev/目录下生成对应的设备节点文件,设备节点的名称通常为 videoX(X 标准一个数字编号:/dev/videox),每一个 videoX 设备文件就代表一个视频类设备。应用程序通过对 videoX 设备文件进行 I/O 操作来配置、使用设备类设备。...............原创 2022-08-30 10:11:27 · 7840 阅读 · 6 评论 -
linux应用开发基础(二)
一、配置环境变量配置一些环境变量,如果想每次启动系统都能生效,可以把这些命令放置在/etc/profile 脚本中执行原创 2022-05-04 20:09:52 · 740 阅读 · 0 评论 -
标准I/O库
标准 I/O 库则是标准 C 库中用于文件 I/O 操作,通常标准 I/O 库函数相关的函数定义都在头文件<stdio.h>中。标准 I/O 库函数是构建于文件 I/O(open()、 read()、 write()、 lseek()、 close())这些系统调用之上的,标准 I/O 库函数 fopen()就利用系统调用 open()来执行打开文件的操作、 fread()利用系统调用 read()来执行读文件操作、 fwrite()则利用系统调用 write()来执行写文件操作。一、FI原创 2022-05-02 19:12:28 · 1058 阅读 · 0 评论 -
文件I/O基础
一个通用的 IO 模型通常包括打开文件、读写文件、关闭文件这些基本操作, 主要涉及到 4 个函数: open()、 read()、 write()以及 close()。一、文件描述符调用 open 函数会有一个返回值,返回int 类型的数据。在 open函数执行成功的情况下, 会返回一个非负整数, 该返回值为一个文件描述符(file descriptor) , 这说明文件描述符是一个非负整数; 对于 Linux 内核而言,所有打开的文件都会通过文件描述符进行索引。当调用 open 函数打开一.原创 2022-05-01 20:12:09 · 370 阅读 · 1 评论 -
libpng库的移植与使用
一、zlib移植zlib 是一套包含了数据压缩算法的函式库,此函数库为自由软件, 是一套免费、开源的 C 语言函数库。libpng 依赖于 zlib 库, 所以要想移植 libpng 先得移植 zlib 库才可以。下载源码:http:// https://www.zlib.net/fossils/这里下载的是zlib-1.2.11.tar.gz。解压:tar -xzf xxx.tar.gz进入改目录下,编译整个工程:初始化交叉编译工具的环境:source /opt/fsl-im...原创 2022-05-01 17:47:58 · 1936 阅读 · 3 评论 -
libjpeg库移植与使用
一、移植libjpeg库库源码:http://www.ijg.org/files/这里下载的是jpegsrc.v9b.tar.gz,点击该文件即可下载。然后拷贝到虚拟机上。解压命令:tar -xzf jpegsrc.v9b.tar.gz解压成功之后会生成 jpeg-9b 文件夹,也就是 libjpeg 源码文件夹进入改目录下,编译整个工程:初始化交叉编译工具的环境:source /opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup.原创 2022-05-01 13:34:41 · 7395 阅读 · 5 评论 -
Linux应用开发基础
一、安装Pocy交叉编译工具链将fsl-imx-x11-glibc-x86_64-metatoolchain-qt5-cortexa7hf-neon-toolchain-4.1.15-2.1.0.sh 拷贝到 Ubuntu 虚拟机。修改使用权限如下:chmod u+x fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.1.15-2.1.0.sh安装完成后,还需要使能环境变量。但是在不同终端或者.原创 2022-04-30 16:47:55 · 2412 阅读 · 2 评论 -
Linux线程
线程线程是操作系统能够调度和执行的基本单位,在 Linux 中也被称之为轻量级进程(LWP:light weight process),在 Linux 系统中,一个进程至少需要一个线程作为它的指令执行体,进程管理着资源比如 cpu、内存、文件,将线程分配到某个 cpu 上执行一个进程可以拥有多个线程,它还可以同时使用多个cpu 来执行各个线程,以达到最大程度的并行,提高工作的效率。线程的本质是一个进程内部的一个控制序列,它是进程里面的东西,一个进程可以拥有一个进程或者多个进程总结:1.一个程序至原创 2021-09-07 19:41:00 · 384 阅读 · 1 评论 -
文件操作与系统调用
在 Linux 系统中:一切皆文件它把一切资源都看作是文件,包括硬件设备,通常称为设备文件文件系统为了高效地存储和管理数据,文件系统在存储介质上建立了一种组织结构,这些结构包括操作系统引导区、目录和文件,就如同图书馆给不同类的书籍进行分类、编号,放在不同的书架上。文件描述符文件描述符(file descriptor)就是内核为了高效管理这些已经被打开的文件所创建的索引,其是一个非负整数(通常是小整数),用于指代被打开的文件,所有执行I/O操作的系统调用都通过文件描述符来实现Linux中规定每一个原创 2021-09-07 19:16:38 · 579 阅读 · 0 评论 -
systerm-v IPC
消息队列、共享内存和信号量被统称为 system-V IPC一般习惯称呼他们为 IPC 对象,这些对象的操作接口都比较类似,在系统中他们都使用一种叫做 key 的键值来唯一标识,而且他们都是“持续性”资源——即他们被创建之后,不会因为进程的退出而消失,而会持续地存在,除非调用特殊的函数或者命令删除他们Linux 的 IPC 对象(包括消息队列、共享内存和信号量)在内核内部使用链表维护,不同的对象使用 IPC 标识符来标识,如消息队列标识符 msqid、共享内存标识符 shmid,信号量标识符 semid原创 2021-09-07 17:01:45 · 882 阅读 · 0 评论 -
Linux通信---信号
信号信号(signal),又称为软中断信号,用于通知进程发生了异步事件,它是Linux系统响应某些条件而产生的一个事件,它是在软件层次上对中断机制的一种模拟,是一种异步通信方式,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的信号是进程间通信机制中唯一的异步通信机制,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达kill命令来查看系统中支持的信号种类:kill -l常用信号这64中信号分为两大类非实时信号(不可靠)和实时信号(可靠)原创 2021-09-03 20:03:54 · 395 阅读 · 0 评论 -
Linux通信---管道
通信(ipc)进程之间的通信主要是为了:- 数据传输- 资源共享- 事件通知- 进程控制Linux系统下的ipc(1)早期unix系统ipc管道信号fifo(2)system-v ipc(贝尔实验室)system-v 消息队列system-v 信号量system-v 共享内存(3)socket ipc(BSD)(4)posix ipc(IEEE)posix 消息队列posix 信号量posix 共享内存管道当数据从一个进程连接流到另一个进程, 这之间的原创 2021-09-03 16:30:39 · 408 阅读 · 0 评论 -
进程的定义与创建
1.进程的定义(1)程序程序(program)是一个普通文件,是为了完成特定任务而准备好的指令序列与数据的集合,这些指令和数据以”可执行映像”的格式保存在磁盘中。正如我们所写的一些代码,经过编译器编译后,就会生成对应的可执行文件,那么这个就是程序,或者称之为可执行程序(2)进程进程(process)则是程序执行的具体实例,比如一个可执行文件,在执行的时候,它就是一个进程,直到该程序执行完毕。进程实体由数据段,程序段,进程控制块PCB(Process Control Block)组成进程的特征原创 2021-09-01 21:06:05 · 1247 阅读 · 0 评论 -
shlle脚本
shell脚本类似windows的批处理文件,shell脚本就是将连续执行的命令写成一个文件。(1)shell脚本写法shell脚本是个纯文本文件,命令一行一行的开始执行,扩展名为.sh文件的首行必须为:#!/bin/bash 表示使用bash(2)基础语法...原创 2021-08-16 21:48:10 · 494 阅读 · 0 评论 -
Linux C/C++
1.GCC编译器使用VIM编辑器编程程序后,Ubuntu使用gcc编译gcc mian.c -o main (将mian.c 编译成main可执行程序)执行main : ./maingcc 命令:执行的方法很简单使用命令:’ ./+可执行文件’格式: gcc [选项] [文件名字]选项参数:-c: 只编译不链接为可执行文件,编译器将输入的.c 文件编译为.o 的目标文件。-o: <输出文件名>用来指定编译结束以后的输出文件名,如果不使用这个选项的话 GCC 默原创 2021-08-16 21:40:23 · 351 阅读 · 0 评论 -
Ubuntu文本编辑器
1.Gedit 编辑器在终端使用 gedit xxx 可以打开一个文件并编辑2.VI/VIM 编辑器VIM 编辑器有 3 种工作模式:输入模式、指令模式和底行模式,通过切换不同的模式可以完成不同的功能一般模式(指令模式):默认模式,用vi打开一个软件以后自动进入到此模式。编辑模式:一般模式中无法编辑文件,要编辑文件就要进入编辑模式,按下“i、I、a、A、o、O、s、r”等就会进入到编辑模式。一般按下“a”进入编辑模式。按下ESC键可退出编辑模式。命令行模式(底行模式):先进入到一般模式,然后输原创 2021-08-16 14:38:09 · 5142 阅读 · 0 评论 -
Ubuntu文件
1.根目录’/'Linux下“/”就是根目录!所有的目录都是由根目录衍生出来的(2)Ubuntu文件系统结构文件存储内容:/bin 存放二进制可执行文件,这些命令在单用户模式下也能够使用。可以被root和一般的账号使用。/boot Ubuntu内核和启动文件,比如vmlinuz-xxx。gurb引导装载程序。/dev 设备驱动文件/etc 存放一些系统配置文件,比如用户账号和密码文件,各种服务的起始地址。/home 系统默认的用户主文件夹,一般创建用户账户的时候,默认的用户主文原创 2021-08-15 19:30:13 · 700 阅读 · 0 评论 -
Shell命令
终端命令格式:command [-options] [parameter]command :命令名,相应功能的英文单词或单词的缩写[-options] :选项,可用来对命令进行控制,也可以省略parameter :传给命令的参数,可以是 零个、一个 或者 多个1.文件和目录常用命令(1)ls : 列出目录的内容及其内容属性信息 (list)常用: ls -a ls -l ls -lals 常用选项-a 显示指定目录下所有子目录与文件,包括隐藏文件-l 以列表方式显示文件的详细信息原创 2021-08-15 17:33:15 · 339 阅读 · 0 评论