嵌入式Linux
文章平均质量分 82
嵌入式Linux
cfl927096306
关注行业动态,不断充实自我。
展开
-
一文搞懂Linux时区设置、自定义时区文件
一文搞懂Linux时区设置、自定义时区文件原创 2023-03-09 17:00:29 · 8309 阅读 · 3 评论 -
strace 用法介绍
strace 用法介绍原创 2023-03-09 16:57:24 · 3113 阅读 · 0 评论 -
利用Python Crypto生成RSA公钥私钥
# -*- coding: utf-8 -*-from Crypto import Randomfrom Crypto.PublicKey import RSAprint "generate private key and pulic key"# 参考 C:\Python27\Lib\site-packages\Crypto\PublicKey\RSA.py##########...原创 2018-04-10 21:41:41 · 4483 阅读 · 0 评论 -
arm-linux-gnueabihf-gcc交叉编译MQTT C Client
参考https://www.cnblogs.com/homejim/p/8120632.htmlhttps://www.cnblogs.com/homejim/p/8146405.htmlhttps://www.cnblogs.com/homejim/p/8196763.html 创建个目录mkdir mqtt_democd mqtt_demo把source code拉...原创 2018-09-10 13:40:28 · 1704 阅读 · 0 评论 -
C语言 udp socket 发送和接收不定长结构体
//socket udp 服务端#include <stdio.h>#include <unistd.h>#include <sys/types.h>#include <sys/socket.h>#include <arpa/inet.h>#include <stdlib.h>#include <stri...原创 2019-03-06 15:13:21 · 3381 阅读 · 4 评论 -
Linux应用层如何监测网线的插拔状态
方法一:参考:https://blog.csdn.net/hbk320/article/details/47300067由于linux下的ifconfig命令就能够实现在应用层监控网线插拔状态,例如当网线连接正常时,使用ifconfigeth0命令,打印的信息中会有RUNNING,而拔掉网线后,再使用ifconfigeth0命令,RUNNING就不见了。所以,实现Linux应用层监控网...转载 2019-03-15 13:49:49 · 2374 阅读 · 0 评论 -
GPIO按键的长按、短按、连发——C程序
不借助GPIO中断,采用轮询的方式,实现按键的长按、短按、连发参考:https://blog.csdn.net/qq_31151689/article/details/85228441百度快照:http://cache.baiducontent.com/c?m=9d78d513d99603f405fa950e1a66d571695297134dc0a46468d5e35fe3654c...转载 2019-03-18 16:06:07 · 4211 阅读 · 1 评论 -
海思Hi3531 GPIO按键的长按、短按、连发——Linux驱动+应用程序
之前整理了一篇博文,是纯粹在应用层(用户空间)来轮询GPIO口的电平状态,来达到按键检测的目的。https://blog.csdn.net/cfl927096306/article/details/88640930显然这样就会一直不停的占用CPU,虽然每次轮询都delay了10毫秒,但这样的代码还是不够优秀。本篇文章提供了另一种思路:1. 由Linux驱动来完整按键的检测,借用Li...原创 2019-03-27 13:55:38 · 6456 阅读 · 12 评论 -
Source Insight 4.0 使用宏添加文件头信息、函数头信息、注释代码块
/* * 文件名:flinger.em * * 步骤: * 1. 复制到Base项目文件夹,如;C:\Users\xxx\Documents\Source Insight 4.0\Projects\Base * 2. Project -> Open Project,打开Base项目; * 3. 将复制过去的flinger.em添加入Base项目; * 4. 重启SourceI...原创 2019-05-27 11:09:37 · 4054 阅读 · 2 评论 -
交叉编译ARM平台的log4cpp、log4c,支持属性配置
宿主机环境:Ubuntu 12.04 64bitARM平台交叉编译工具链:arm-hisiv600-linux-下载目前最新版 log4cpp,目前是 log4cpp-1.1.3.tar.gzhttps://sourceforge.net/projects/log4cpp/解压该压缩包到任意一个目录tar -xzf log4cpp-1.1.3.tar.gz同时新建一...原创 2019-05-29 17:33:20 · 2057 阅读 · 0 评论 -
软件看门狗的一种实现——父进程监控子进程
本文利用 fork、wait、execvp 三个函数实现了类似软件看门狗的功能,具体如下:1. 父进程创建子进程,子进程负责运行小程序2. 父进程的 log 打印到终端,子进程的 log 被重定向到指定文件3. 父进程负责监控子进程的运行状态,发现子进程退出则重新拉起子进程(小程序)准备一个小程序 dog.c,编译成aDog 和bDog 两个小程序// dog.c...原创 2019-05-30 10:37:41 · 1529 阅读 · 0 评论 -
多进程共享一个资源——互斥信号量的实现
实际应用中, 可能会是去 open 一个 I2C 设备节点, 这个 I2C 控制着一个 I2C 多路分配器(例如1分8)8路 I2C 连接着8个相同的 I2C 设备(即 I2C 地址相同)这种情形就要确保同一时间8路中只能有1路 I2C 被读写, 否则 I2C 地址相同的设备将受干扰为了多进程共同访问这个 I2C 资源, 就要用信号量做同步和互斥了// semaphore.c#in...原创 2019-05-31 11:59:59 · 3226 阅读 · 0 评论 -
C/C++常用工具库下载,未完待续...
libmd5,此外还可以看到 md5sum 这个工具的实现https://github.com/jeffboody/libmd5tinyxml2https://github.com/leethomason/tinyxml2示例教程可参考:https://www.cnblogs.com/happykoukou/p/6307257.htmliniparserhttp...原创 2019-06-19 19:30:32 · 2053 阅读 · 2 评论 -
用alarm()为recvfrom设置定时器
转载自:https://www.cnblogs.com/dreamrun/p/4047795.html 因为项目需要,需要以5s为周期,收集广播信息,所以就要用到定时器和recvfrom函数,而在实用的过程中发现,5s到了,而程序仍然处于阻塞状态,一直纠结了好久,才找到问题所在,在此mark一下,以备后期回顾。 归根结底,原因在于使用的signal()函数:signal()是重启函数...转载 2019-07-03 10:56:37 · 406 阅读 · 0 评论 -
Ubuntu 12.04交叉编译QT5.9.0
1. 更新Ubuntu 12.04的gcc版本由于QT5.9.0需要用到C++11、C++14等特性,但Ubuntu 12.04默认的gcc版本是4.6.3太low,不支持C++11,所以要升级gcc版本到5.5.0(可自己决定升级到哪个版本),以下是为普通用户临时升级gcc版本的方法参考这篇文章https://blog.csdn.net/OliverkingLi/article/deta...原创 2019-07-08 19:25:28 · 1192 阅读 · 1 评论 -
嵌入式Linux利用udev实现自动检测挂载U盘
udev配置文件是/etc/udev/udev.conf,也许长这样:# udev.conf# The initial syslog(3) priority: "err", "info", "debug" or its# state can be changed with: "udevcontrol log_priority=<value>".udev_root="/dev...原创 2019-07-09 12:05:44 · 2354 阅读 · 4 评论 -
移植u-boot-2013.04的yaffs2到u-boot-2010.06
u-boot下载路径ftp://ftp.denx.de/pub/u-boot/在u-boot-2010.06的总配置文件确保有CONFIG_YAFFS2 的定义,这个是使能yaffs2功能如 u-boot-2010.06/include/configs/pm9263.h 最后增加1行:#define CONFIG_YAFFS2替换cp -rf u-boot-2013.04/c...原创 2019-07-15 10:55:42 · 198 阅读 · 0 评论 -
嵌入式Linux读写uboot的环境变量 —— fw_printenv 的使用
下载 u-boot-2010.06官网下载ftp://ftp.denx.de/pub/u-boot/积分多的可以去这里下载,网速会快一点https://download.csdn.net/download/laifu_ma/5688297解压 uboottar -jxf u-boot-2010.06.tar.bz2fw_printenv 的源码在 u-boot-2010.06/too...原创 2019-09-03 15:50:32 · 2655 阅读 · 1 评论 -
嵌入式Linux支持Audit审计
背景: 开发过程中发现自己的某个进程被莫名其妙的杀死了,概率性的,不好查。想知道是被哪个进程给误杀了Linux kernel 版本: linux-3.18.20audit 版本: audit-1.7.18首先 Kernel 要支持 audit,要看 linux-3.18.20/kernel 目录下有没有 audit 相关的 .c 文件audit.caudit_tree.caud...原创 2019-09-23 19:05:31 · 1906 阅读 · 0 评论 -
mtd-utils 的交叉编译
mtd-utils依赖于zlib、lzo、e2fsprogs提供的库zlib下载地址:http://www.zlib.net/lzo下载地址:http://www.oberhumer.com/opensource/lzo/download/e2fsprogs下载地址:http://sourceforge.net/projects/e2fsprogs/files/e2fsprogs/ 或 ht...原创 2019-10-08 12:03:43 · 986 阅读 · 2 评论 -
AutoIP 的嵌入式应用
背景开发的产品需要增加 AutoIP 功能,具体要求如下:当设置为 DHCP 时,如果 DHCP 获取或续约失败,则启用 AutoIP 获取 IP 地址AutoIP 期间,DHCP 一旦成功则切换到 DHCP 获得的 IP 地址介绍 ZeroconfZeroconf 全称为 Zero configuration networking,提出者是 Apple 公司,中文名则为零配...原创 2020-03-06 14:34:59 · 5294 阅读 · 5 评论 -
新版jsoncpp的一些基本用法
下载:https://github.com/open-source-parsers/jsoncpp/tree/1.9.0直接贴代码吧#include <stdio.h>#include <assert.h>#include <string>#include <algorithm>#include <fstream>#i...原创 2020-03-25 19:57:42 · 3466 阅读 · 0 评论 -
海思Hi531D芯片使用QT前的准备
直接看代码吧...#include <stdio.h>#include <string.h>#include <unistd.h>#include <fcntl.h>#include <sys/ioctl.h>#include <sys/mman.h>#include <linux/fb.h>...原创 2020-04-09 13:18:16 · 450 阅读 · 0 评论 -
CMake 实例详解
CMake 实例详解CMake 是开源、跨平台的构建工具,可以让我们通过编写简单的配置文件去生成本地的 Makefile,这个配置文件是独立于运行平台和编译器的,这样就不用亲自去编写 Makefile 了,而且配置文件可以直接拿到其它平台上使用,无需修改,非常方便,从而做到 “Write once, run everywhere”。CMakeLists.txt 是 CMake 的配置文件。n...原创 2020-04-09 14:34:10 · 3176 阅读 · 3 评论 -
移植Python2.7.3到嵌入式Linux平台——HI3531DV100
Python2与Python3二者是不兼容的,因此做两个版本来说明,先从Python2开始,网上用得比较多的Python2当属2.7.3了硬件信息编译服务器版本:Ubuntu 12.04.5 LTS交叉编译器:arm-hisiv600-linux-硬件平台:HI3531DV100源码下载&解压wget https://www.python.org/ftp/python/2.7.3/Python-2.7.3.tar.xzxz -d Python-2.7.3.tar.xztar x原创 2020-11-26 21:22:37 · 434 阅读 · 0 评论 -
移植Python3.6.6到嵌入式Linux平台——HI3531DV100
编译Python2.7.3需要给Python2源码打上用于交叉编译的patch,从Python-3.3.1开始,就不需要再打什么patch了,只需要在configure的时候指定–build和–host参数即可源码下载&解压wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tar.xzxz -d Python-3.6.6.tar.xztar xvf Python-3.6.6.tar编译HOST解释器同Pyt原创 2020-11-28 12:18:33 · 513 阅读 · 0 评论 -
NXP i.mx8mm 下载 yocto 源码,编译最小 rootfs
下载编译yocto下载repomkdir testcd testcurl https://storage.googleapis.com/git-repo-downloads/repo > ./repo因为国内防火墙的原因,编辑 repo 里的 url 地址,改为国内的REPO_URL = ‘https://mirrors.tuna.tsinghua.edu.cn/git/git-repo’如果是第一次下载使用 git ,需要配置 git 相关的环境变量git config -原创 2020-12-29 15:04:58 · 1684 阅读 · 1 评论 -
imx8 交叉编译libgpiod
下载 libgpiod-1.6.2.tar.gzhttps://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/解压tar -zxf libgpiod-1.6.2.tar.gz打 patchcd libgpiod-1.6.2patch -p1 < ../libgpiod-1.6.2.patch编译. /opt/fsl-imx-xwayland/5.4-zeus/environment-setup-aarch64-poky-linu原创 2021-02-01 14:56:26 · 1122 阅读 · 0 评论 -
imx8 交叉编译jq
下载 jqgit clone https://github.com/stedolan/jq.git打 patchcd jqpatch -p1 < ../jq.patch编译. /opt/fsl-imx-xwayland/5.4-zeus/environment-setup-aarch64-poky-linuxmakediff -uprN jq-old/Makefile jq-new/Makefile--- jq-old/Makefile 1970-01-01 08:00:00.原创 2021-02-01 15:01:47 · 756 阅读 · 0 评论