
linux学习
文章平均质量分 95
WuYuJun's blog
这个作者很懒,什么都没留下…
展开
-
树莓派驱动——hello world
文章目录开发环境树莓派查看内核版本PC下载树莓派内核下载交叉编译工具Tools把交叉编译工具路径加入到环境变量编译树莓派内核编写驱动程序测试开发环境PC:Ubuntu 14.04.6 LTS (GNU/Linux 4.4.0-142-generic x86_64)树莓派:Linux raspberrypi 4.19.118-v7+ #1311 SMP Mon Apr 27 14:21:24 BST 2020 armv7l树莓派查看内核版本wyj@raspberrypi:~ $ uname -a原创 2020-07-08 23:01:26 · 2239 阅读 · 1 评论 -
openssl安装与使用
文章目录1、OpenSSL简介2、 OpenSSL安装3、加密技术介绍4、openssl 命令4.1摘要命令4.2、对称加密命令4.3非对称加密命令4.3.1生成私钥4.3.2提取公钥4.3.3利用公私钥加密、解密数据4.3.4 数字签名4.3.5数字证书1、OpenSSL简介OpenSSL是一个SSL协议的开源实现,采用C语言作为开发语言,具备了跨平台的能力,支持Unix/Linux、Windows、Mac OS等多种平台。 OpenSSL最早的版本在1995年发布,1998年后开始由OpenS原创 2020-06-18 18:01:33 · 66034 阅读 · 7 评论 -
Libevent源码分析——Libevent工作流程
在这里分析一下Libevent基本工作流程,深入理解一下libevent。通常一个最简单的libevent应用流程图如下:首先了解一下struct event结构体。struct event结构体:struct event {struct event_callback ev_evcallback;//事件回调函数结构体/* for managing timeouts */union {TAILQ_ENTRY(event)...原创 2020-06-14 15:32:14 · 664 阅读 · 0 评论 -
Libevent源码分析——队列
在compat/sys/queue.h文件里定义了5种数据结构,分别是单链表、双链表、简单队列、尾队列、环形队列,其中 TAILQ_QUEUE尾队列是libevent里使用最多的,libevent中用到的队列其实也是尾队列,所以这里只分析尾队列TAILQ_QUEUE,其他结构都大同小异,TAILQ_QUEUE队列的结构体如下:/** Tail queue definitions.*/#define TAILQ_HEAD(name, type)...原创 2020-06-14 15:22:31 · 427 阅读 · 0 评论 -
Libevent源码分析——日志系统
Libevent日志系统Libevent在默认情况下,会将日志信息输出到终端上,可以编写日志回调函数,在回调函数中把信息输出到一个文件上。Libevent允许提供日志回调函数接口,只需设置日志回调函数。当有日志时,Libevent库就会调用这个日志回调函数,回调函数的格式如下所示。typedef void (*event_log_cb)(int severity, const char *msg);void event_set_log_callback(event_log_cb cb);第一个参数原创 2020-06-14 15:16:44 · 470 阅读 · 0 评论 -
Libevent安装和使用
1、Libevent简介livevent是一个轻量级的开源的高性能的事件触发的网络库,适用于windows、linux、bsd等多种平台,内部使用select、epoll、kqueue等系统调用管理事件机制。Libevent是用于编写高速可移植非阻塞IO应用的库。2、Libevent安装ubuntu@VM-0-7-ubuntu:~/Project$ wget https://github.com/libevent/libevent/releases/download/release-2.1.10原创 2020-06-14 15:16:13 · 1619 阅读 · 0 评论 -
libjpeg库的简单使用,rgb565与rgb888互转,以及色块的寻找
最近用的摄像头OV2640摄像头,支持RGB565、JPEG、YUV和YCbCr格式的输出,想要对采集的图像进行色块识别,这样一般需要用到RGB格式的输出会比较好处理,数字图像处理中常用的采用模型是RGB(红,绿,蓝)模型和HSV(色调,饱和度,亮度),RGB广泛应用于彩色监视器和彩色视频摄像机,我们平时的图片一般都是RGB模型。别人是RGB的LCD屏幕作为上位机,而我却没有LCD屏幕作为上位机,...原创 2019-12-05 21:02:22 · 5645 阅读 · 1 评论 -
Wrong JPEG library version: library is 80, caller expects 90
先说说我是怎么搞出问题QAQ数字图像处理中常用的采用模型是RGB(红,绿,蓝)模型和HSV(色调,饱和度,亮度),RGB广泛应用于彩色监视器和彩色视频摄像机,我们平时的图片一般都是RGB模型。而HSV模型更符合人描述和解释颜色的方式,HSV的彩色描述对人来说是自然且非常直观的。RGB图像处理时候,容易受到光照变化或阴影的影响,就像我上一篇博客最后的效果图,而且RGB通道并不能很好地反映出物体具...原创 2019-12-08 20:48:12 · 5696 阅读 · 1 评论 -
进程与线程
Linux c处理并发通常会用到进程、线程、多路复用,这几个是最常用的也是最基础的,也准备需要找工作了,整理一下与这些相关的东西,发现光进程与线程就有很多内容,多路复用留到下篇写吧一、进程什么是一个进程?在操作系统原理使用这样的术语来描述的:正在运行的程序及其占用的资源(CPU、内存、系统资源等)叫做进程。进程状态反映进程执行过程的变化。这些状态随着进程的执行和外界条件的变化而转换。在...原创 2019-08-12 20:46:11 · 373 阅读 · 3 评论 -
valgrind简介与使用
一、valgrind简介Valgrind是一款用于内存调试、内存泄漏检测以及性能分析、检测线程错误的软件开发工具。Valgrind 是运行在Linux 上的多用途代码剖析和内存调试软件。主要包括Memcheck、Callgrind、Cachegrind 等工具,每个工具都能完成一项任务调试、检测或分析。可以检测内存泄露、线程违例和Cache 的使用等。Valgrind 基于仿真方式对程序进...原创 2019-08-11 14:19:17 · 48430 阅读 · 5 评论 -
多路复用
讲多路复用先我觉得有必要讲一下什么是阻塞IO、非阻塞IO、同步IO、异步IO这几个东西;linux的五种IO模型:1)阻塞I/O(blocking I/O)2)非阻塞I/O(nonblocking I/O)3) I/O复用(select和poll)(I/O multiplexing)4)信号驱动I/O(signal driven I/O (SIGIO))5)异步I/O(asyn...原创 2019-08-13 14:26:58 · 11348 阅读 · 1 评论 -
AT指令发送TEXT格式和PDU格式短信,以及linux c编程实现3G模块发送短信
发送短消息常用Text和PDU(Protocol Data Unit,协议数据单元)模式。使用Text模式收发短信代码简单,实现起来十分容易,但最大的缺点是不能收发中文短信;而PDU模式不仅支持中文短信,也能发送英文短信。PDU模式收发短信可以使用3种编码:7-bit、8-bit和UCS2编码。7-bit编码用于发送普通的ASCII字符,8-bit编码通常用于发送数据消息,UCS2编码用于...原创 2019-07-26 18:55:52 · 3098 阅读 · 1 评论 -
使用3g模块SIM5360E收发短信
一、介绍3g模块SIM5360E收发短信 实现类似短信猫的功能,首先先了解一下什么是短息猫,来自百度百科:(所谓短信猫,其实是一种用来收发短信的设备,他和我们用的手机一样,需要手机SIM卡的支持,在需要收发短信的时候,在短信猫里面插入一张我们平时用的手机卡,插上电源,通过(USB或者串口、网口)数据线和电脑相连,在电脑的应用管理软件中就可以实现短信收发的功能。) 我实现的是服务...原创 2019-08-04 13:05:23 · 529 阅读 · 0 评论 -
利用mosquitto库实现客户端上报云平台
这里做的是上报阿里云平台首先需要连接阿里云测试这里我也是参考别人博客一步步做的...所以还是直接贴出链接:https://blog.youkuaiyun.com/qq997758497/article/details/90757307按照上面博客成功用MQTT.fx订阅与发布之后,接下来看一下我们得到的东西订阅和发布的主题,这里用/sys/a1R4lbARNLO/${deviceNam...原创 2019-07-25 17:03:51 · 1770 阅读 · 0 评论 -
AT指令接收短信并编写程序实现
一、AT指令接收流程1、首先先选择短信存储载体AT+CPMS:AT+CPMS=?作用:用于得到所支持的储存位置的列表返回:+CPMS: ("ME","MT","SM","SR"),("ME","MT","SM","SR"),("ME","SM")OK表示支持MT(终端),SM(SIM卡),ME(手机设备)AT+CPMS?作用:得到当前的...原创 2019-07-25 12:52:19 · 5877 阅读 · 0 评论 -
多线程socket服务器
多线程 #include <pthread.h> int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);第一个参数为指向线程标识符的指针,返回线程id,线程通过pthread_self()来...原创 2018-11-23 17:25:59 · 806 阅读 · 0 评论 -
Makefile学习笔记
makefile就是目标文件加上依赖文件hello:main.o func1.o func2.ogcc main.o func1.o func2.o -o hello规则targets (目标) :prerequisites(依赖)command(命令).Makefile 由若干条的规则构成.每个规则又是这样的:targets (目标) :prerequisites(依赖...原创 2018-11-24 16:37:08 · 226 阅读 · 0 评论 -
IPC进程间通信
linux进程间通信方式总结ipcs命令:查看系统使用的IPC资源,报告进程间通信设施状态。ipcs -m 查看系统使用的IPC共享内存资源ipcs -q 查看系统使用的IPC队列资源ipcs -s 查看系统使用的IPC信号量资源一、无名管道(Pipe) (1)只能用于有亲缘关系的进程间通信 (2)半双工的通信模式,具有固定的读写端 (3)pipe看做特殊的文...原创 2018-12-25 22:34:57 · 410 阅读 · 0 评论 -
MQTT简介和mosquitto安装与使用及利用mosquitto库Linux c编程
一、MQTT简介MQTT(消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它工作在TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议;Mosquitto是一个实现了MQTT3.1协议的代理服务器,由MQTT协议创始人之一的Andy Stanford-Clark开发,应用广泛的低功耗传感器,手...原创 2019-01-27 23:43:51 · 22175 阅读 · 4 评论 -
Linux c使用Socket通信实现FTP客户端程序
一、FTP 概述文件传输协议(英文:File Transfer Protocol,缩写:FTP)是用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式。它属于网络传输协议的应用层。FTP的传输有两种方式:ASCII、二进制。二、传输方式ASCII传输方式假定用户正在拷贝的文件包含的简单ASCII码文本,如果在远程机器上运行的不是UNIX,当文件传输时ftp通常会自动地...原创 2019-03-20 20:57:47 · 4093 阅读 · 8 评论 -
gcc介绍及编译过程
一、GCC介绍GCC原来代表“GNU C Compiler”的意思。自从面世后,GCC 逐渐扩充、发展,现在不仅仅支持C语言,还支持其他很多语言,包括C++、Ada、Objective-C、Fortran 和Java等。因此,GCC 的意思被重新定义为“GNU Compiler Collection”,也即“GUN 编译器套件”。但是只有接触到linux平台下的开发,才能真正了解gcc...原创 2019-03-25 21:39:28 · 737 阅读 · 0 评论 -
TLV简介以及c语言实现装包与解析
一、TLV简介 协议可以使双方不需要了解对方实现细节的情况下进行通信,因此双方可以是异构的,例如服务器可以是c,客户端可以是java,基于相同的协议,我们可以用自己熟识的语言工具来对通信发送的数据装包或解析来进行通信。当然也不只是这样,计算机通信不是通过字符串传输的,是将电信号转换为逻辑信号,其转换方式是将高低电平表示为二进制数中的1和0, 再通过不同的二进制序列来表示所有的信息。...原创 2019-04-07 17:09:50 · 9690 阅读 · 2 评论 -
Linux串口编程
一、串口通信介绍串口是计算机上的串行通信的物理接口。首先先介绍一下串行通信,串行通信的分类:1、按照数据传送方向,分为:单工:数据传输只支持数据在一个方向上传输;就像路上的单行线。半双工:允许数据在两个方向上传输。但是,在某一时刻,只允许数据在一个方向上传输;半双工就像分时段的单行线,上午时段通行这边,下午时段通行另一边,而单工就是全天单行线。全双工:允许数据同时在两个方向上传...原创 2019-05-18 13:32:23 · 33572 阅读 · 9 评论 -
USB转串口驱动分析(一)
之前追踪代码用的grep命令效率太低了,所以这次下载C代码阅读跳转利器ctags、cscope用于分析代码因为用的是Centos6.7所以需要用到yum install安装软件[wuyujun@wuyujunlocalhost ~]$ sudo yum install ctags cscope[wuyujun@wuyujunlocalhost ~]$ vim ~/.bashrc#在...原创 2019-05-27 22:24:30 · 4510 阅读 · 1 评论