嵌入式linux应用开发系列
文章平均质量分 52
系统讲述linux应用开发基础知识、开发流程,一些技巧。是用于入门者
fensnote
嵌入式linux系统设计开发
C/CPP Qt应用开发
展开
-
推荐一款嵌入式Linux开源框架与封装-cpp-tbox
这里推荐一款嵌入式的cpp框架与封装代码,小而轻量级,很不错的开源代码。欢迎关注订阅,获取更多开源工具:fensnote全称: C++ Treasure Box,C++百宝箱,是一个基于 Reactor 模式的服务型与,旨在让C++开发变得轻松。原创 2024-03-04 08:43:21 · 1138 阅读 · 0 评论 -
嵌入式Linux系统-升级包中的脚本
脚本在Linux系统中具有很大的作用,在嵌入式Linux系统里,同样具有很大的作用,前面写过启动预留脚本、U盘自动运行脚本,今天介绍的是升级包中的脚本。设计一个嵌入式Linux升级包嵌入式Linux系统的升级包,可以升级内核、文件系统、应用程序、配置文件、资源文件等等,所以在设计升级包时,一定要考虑到可以升级多种文件载体,而不是只针对一种文件的升级。记得刚毕业工作的时候,产品做升级功能,刚开始做了内核、文件系统、应用程序的升级包,后来由于客户需要,需要远程升级资源文件,然后就在升级类型中又加了一种.原创 2022-02-13 22:11:21 · 997 阅读 · 0 评论 -
制作一个嵌入式Linux的应用程序升级文件
简述嵌入式Linux系统一般是将应用程序与文件系统、内核、资源文件等放在不同的分区,产品量产后内核、文件系统这些一般不会升级,应用程序可能升级会比较多一些。有的嵌入式系统的应用程序分区用的也是可读写的,那比较方便,把文件打包然后解压到对应的分区目录下替换即可。有的是应用分区做成只读,这样需要将应用程序打包做成flash镜像,下载到设备上更新到flash上。不论是那种方式,对应应用程序来说都需要打包起来,可以是压缩包,也可以是镜像文件。这些文件在导入到系统进行升级的时候,我们都需要对这个文件做一些必要的原创 2021-09-25 10:02:55 · 1112 阅读 · 0 评论 -
一个神奇的Linux命令-sed
sed功能堪称强大,命令行文本修改编辑必不可少!这里仅仅记录其最常用的功能,详细功能使用可以看手册,这里不做重复描述。比如要替换当前目录下所有文件的一个字符串,“nicai” 替换为“nicaiwocaibucai”,可以这样操作:sed -i "s/nicai/nicaiwocaibucai/g" `grep “nicai” -rl ./`这样将当前目录下的文件全部替换,包括子目录下的!欢迎关注微信公众号:fensnote...原创 2021-09-18 10:06:28 · 197 阅读 · 0 评论 -
Linux软链接使用技巧
软链接概述软链接是Linux下常用的一种共享文件方式、目录的方式,这种方式类似于Windows下的快捷方式。一般一个文件或者目录在不同的路径都需要的时候,可以通过创建软链接的方式来共享,这样只系统下面只有一份源文件、目录。另外,巧用软链接,可以大大增加应用程序的可移植性。软链接创建与删除软链接创建与删除比较简单,使用ln命令创建链接文件,格式如下:ln -s [源文件或目录] [目标文件或目录]示例:建立一个指向/usr/local/www的软链接到/tmp下面:$: ln -s /u原创 2020-09-12 09:32:12 · 1502 阅读 · 0 评论 -
C语言输出颜色
命令后界面输出颜色嵌入式终端界面输出日志时,为了区分输出的有用信息、错误信息,可以给不同级别的输出加上不同的颜色,以方便查看。下面是颜色的定义://颜色宏定义#define NONE "\033[m"#define RED "\033[0;32;31m"#define LIGHT_RED "\033[1;31m"#define GREEN "\033[0;32;32m"#define LIGHT_GREEN "\033[1;32m"#原创 2020-05-12 15:36:46 · 5721 阅读 · 3 评论 -
嵌入式Linux串口编程简介
简介嵌入式Linux下串口编程与Linux系统下的编程没有什么区别,系统API都是一样的。嵌入式设备中串口编程是很常用的,比如会对接一些传感器模块,这些模块大多是RS232或者RS485接口,对于软件层面上来说,RS232与RS48区别不大。RS232与RS485在使用上的区别,RS232是全双工的,只能对接一个设备串口设备。RS485是半双工的总线协议,一般可以挂多个传感器设备,半双工的意思是同时只能有一个设备向串口发数据。用到的API函数函数说明open打开设备,用于打开串口原创 2020-05-12 09:27:38 · 636 阅读 · 0 评论 -
LInux下Posix的传统线程示例
简介Linux线程是需要连接pthreat库,线程的使用比进程更灵活,需要注意的是线程间的互斥,或者说是资源共享问题。C++11之后,C++标准库也引入了线程,并且使用非常方便,以后再介绍,这里先发一个简单的线程示例代码。代码#include <stdio.h>#include <pthread.h>#include <string.h>#incl...原创 2020-04-17 09:12:51 · 239 阅读 · 0 评论 -
Linux用C语言模拟‘ls‘命令
原理在linux下使用C语言,通过调用Linux系统的目录访问API来实现一个类似于ls命令功能的小程序,主要是可以练习程序对命令的解析和目录API函数的使用。实现代码#include <stdio.h>#include <time.h>#include <sys/types.h>#include <sys/stat.h>#includ...原创 2020-04-15 07:48:30 · 1007 阅读 · 0 评论 -
关于Linux目录访问函数总结
Linux下目录访问函数总结,主要是涉及到的函数,以及所在头文件。获得工作目录:#include <unistd.h> char *getcwd(char *buf,size_t size);char *getwd(char *buf);/*this is for FreeBSD*/改变当前目录:#inclu...原创 2020-04-14 07:46:24 · 236 阅读 · 0 评论 -
Linux 文件IO简单实例
目录简述代码编译运行简述Linux下的所有资源都被抽象为文件,所以对所有资源的访问都是以设备文件的形式访问,设备文件的操作主要包括:打开、关闭、读、写、控制、修改属性等。下面的示例代码主要是对文本文件的拷贝。代码#include <stdio.h>#include <unistd.h>#include <string.h&...原创 2020-04-14 07:15:13 · 352 阅读 · 0 评论 -
Linux输出缓存你知道多大吗?
今天看到这个代码很简单,就是验证一下Linux系统的输出缓存大小。当猜一下这个代码的输出:#include <stdio.h>#include <string.h>#include <errno.h>#define N 1025int main(int argc, char **argv){ char ch; int cou...原创 2020-04-03 09:27:48 · 958 阅读 · 0 评论 -
Linux进程间通信之《共享内存》入门
共享内存是Linux系统进程间通信常用的方式,通常用于数据量较大的情况,如果只是用于不同的进程间消息通知,那不如用消息队列或者socket。之前做的项目中,使用共享内存的其实只有一种情况:视频数据的共享。设备类似于DVR,视频采集编码在一个独立的程序中,另一个程序负责协议通信。原创 2020-03-31 07:46:02 · 254 阅读 · 0 评论 -
Linux本地套接字(Unix域套接字)----SOCK_DGRAM方式
目录简述创建服务端代码:创建客户端代码接收函数封装发送封装服务端测试main函数客户端测试main函数编译运行结果简述这里介绍一下Linux进程间通信的socket方式---Local socket。这篇主要是介绍下SOCK_DGRAM方式的通信,即数据包的方式(与UDP类似),面向无连接。这个代码是我刚开始学的时候写的,代码比较简单,适合初学,学...原创 2020-03-28 00:10:45 · 2886 阅读 · 0 评论 -
一站式搞定Ubuntu共享环境配置
1. 添加linux用户安装的开发用的虚拟机,一般不直接使用root账户,会新建一个普通用户,然后在/etc/sudoers添加上sudo的权限即可。使用如下命令:sudo adduser --home /home/test test--home:添加用户指定的目录;(不同的adduser版本的参数可能不太相同)最后跟的test为用户名;输入这条命令后,系统会提示让输入用...原创 2020-03-27 23:31:34 · 644 阅读 · 0 评论 -
Linux系统之《消息队列》入手应用
消息队列是Linux进程间通信方式之一,消息队列一般是用于简单的通信,数据量不大,通信不频繁的情况。如果交互频繁或者数据量大就不适合了。原创 2020-03-25 08:08:04 · 784 阅读 · 0 评论 -
Linux无名管道通信介绍
Linux下无名管道一般仅用于父子进程间的通信;测试代码如下//file name: fifo_test.c#include <sys/prctl.h>#include "fifo_test.h"int main(int argc, char **argv){ int ret = 0; char buf[32] = {'\0'}; int pipe_fd[...原创 2020-03-24 08:18:27 · 271 阅读 · 0 评论 -
一文搞懂Linux系统开发
先列一下Linux系统开发要掌握的知识,后续的文章中,会一 一讲解。欢迎关注我的微信公众号:fensnote文章目录Linux系统开发会用到什么?C语言基础shell脚本慢慢学会使用Makefile常规Linux系统编程知识都有什么?哪些常用?哪些不常用?常规Linux编程知识文件IO文件与目录操作标准IO库进程控制高级IO进程间通信数据库串口编程网络编程结束语Linux系统开发会用到什...原创 2020-03-12 00:54:05 · 4217 阅读 · 0 评论 -
Linux入门-程序开发
Linux程序开发linux程序总体上来说是分两部分的:1.底层驱动程序开发;2.应用层应用程序开发;驱动程序一般情况下驱动是跟内核与硬件有关系的,编程语言是C语言,需要懂一些硬件的知识,至少需要看懂硬件原理图和芯片手册。硬件原理图告诉我们底层接口工作的逻辑,以及芯片工作的条件(电压、电流、时钟脉冲等);芯片手册是告诉我们如何去配置使用芯片,比较关键的是看懂寄存器配置,对于芯...原创 2020-02-25 20:39:11 · 864 阅读 · 0 评论 -
Linux入门-基本概念
linux基础概念介绍原创 2020-02-23 22:57:01 · 1375 阅读 · 2 评论 -
嵌入式linux简介
嵌入式linux系统应用非常广泛,涵盖各行各业,基于ARM、mips等微处理器架构的硬件平台。基于嵌入式linux系统的设备已经深入生活中各个角落,随处可见。 我们常说的嵌入式linux系统,其实与电脑端运行的linux系统本质上是一样的,都是使用的linux内核,相同的文件系统目录结构。区别在于嵌入式linux系统多少经过裁剪的,可能在操作时你会发现,有些命令不支持,或者有些命令的个别参数...原创 2020-02-19 18:56:59 · 3208 阅读 · 0 评论 -
嵌入式软件应用程序开发框架浅见
最近在构思一个嵌入式系统上的应用程序开发框架,这个不单单是做一个应用程序的框架,是一个系统的。要达到的目的就是为业务实现部分的程序提供一个框架,这个框架这么说是一个很模糊打概念,下面详细介绍一下这个框架。框架要实现一些常用的功能封装:1. 进程间通信的代码,用于实现进程间数据交互;2. 实现定时器,做开发时间久了,会发现在业务功能实现的过程中,有好多地方会用到定时器,比如某个...原创 2016-10-30 20:21:04 · 3853 阅读 · 2 评论 -
嵌入式linux系统应用开发
关于嵌入式系统 平时大家说的嵌入式其实范围比较广的,是一种软硬件可裁剪,以应用为中心开发的专用系统,硬件平台可以是单片机,或者以ARM系列的处理器。单片机一般直接裸奔程序,不过现在有了好多基于单片机的系统,最近比较火的开源系统RT-Thread,做的还是不错的;基于ARM架构的处理器大部分用的是linux系统作为软件平台,也有部分设备用的是安卓系统(内核也是linux);嵌入式linux系统...原创 2020-02-02 01:09:44 · 2297 阅读 · 0 评论