小虾米_2018
码龄8年
  • 421,946
    被访问
  • 221
    原创
  • 1,686,866
    排名
  • 615
    粉丝
关注
提问 私信

个人简介:专注于C、C++、嵌入式系统、网络、驱动编程~

  • 加入CSDN时间: 2014-11-02
博客简介:

小虾米编程

查看详细资料
个人成就
  • 获得807次点赞
  • 内容获得95次评论
  • 获得3,464次收藏
创作历程
  • 223篇
    2019年
  • 2篇
    2018年
成就勋章
TA的专栏
  • 计算机网络
  • c语言深度剖析
    38篇
  • c++深度剖析
    48篇
  • c/c++相关
    8篇
  • 数据结构
    42篇
  • Linux系统编程
    19篇
  • Linux网络编程
    7篇
  • Linux底层驱动
    48篇
  • 操作系统
    1篇
  • 嵌入式技术
    4篇
  • 项目相关
    9篇
兴趣领域 设置
  • 硬件开发
    驱动开发
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

网络安全传输系统(5)—账号管理子系统设计

1.登录模块设计输入用户名和密码 根据用户名从数据库提取密码 比较用户输入密码和数据库提取密码,以决定是否登录成功2.编译客户端程序arm-linux-gcc -L ../../008/openssl-1.0.0s/_install/lib/ -lssl -lcrypto -I ../../008/openssl-1.0.0s/_install/include/ -L ../....
原创
发布博客 2019.09.02 ·
307 阅读 ·
1 点赞 ·
0 评论

网络安全传输系统(4)—线程池优化

服务器单发模式 初始化->等待连接->处理请求->关闭连接->再次等待连接 服务器并发模式 初始化->等待连接->交给子进程处理请求->再次等待连接 单发服务器不能同时处理多个客户端请求,并发服务器则可以同时处理多个客户端请求。并发服务器一般通过创建线程来处理多个客户端请求。当处理的客户端到达上万个时,不断的创建和销毁线程对服务器是一笔很大...
原创
发布博客 2019.09.02 ·
346 阅读 ·
1 点赞 ·
0 评论

网络安全传输系统(3)—OpenSSL加密传输

1.基本介绍1.1 未加密传输的安全弊端如果在网络传输中没有加密,就是以明文传输。传输的数据可以被抓包软件直接截获,并能读取里面的数据。1.2 加密基本原理对称加密:对称加密指的就是加密和解密使用同一个秘钥,所以叫做对称加密。对称加密只有一个秘钥,作为私钥。常见的对称加密算法:DES,AES,3DES等等。 非对称加密:加密和解密使用不同的秘钥,一把作为公开的公钥,另一把作为私钥。...
原创
发布博客 2019.09.02 ·
811 阅读 ·
1 点赞 ·
0 评论

c语言深度剖析(32)—数组指针和指针数组分析

1. 思考题:下面的声明合法吗?int array[5];int matrix[3][3];int *pa = array;int *pm = matrix;合法,第一个为标准数组的定义,第二个为二维数组的定义,第三个为指向数组的指针,第四个为指向二维数组的指针。 问题: array代表数组首元素的地址,那么matrix代表什么? array和&array的地址值相...
原创
发布博客 2019.09.01 ·
229 阅读 ·
0 点赞 ·
0 评论

c语言深度剖析(2)—有符号与无符号

1.数据类型1.1 计算机中的符号位有符号编码规则:数据的最高位用于标识数据的符号 最高位为1,表示这个数为负数 最高位为0,表示这个数为正数 无符号编码规则:数据的最高位不代表符号位 计算机不知道数据的正负,看人怎么看待 1.2 编程实验有符号数的符号位#include <stdio.h>int main(){ char c = -5...
原创
发布博客 2019.08.30 ·
1679 阅读 ·
3 点赞 ·
0 评论

c语言深度剖析(1)—基本数据类型

1.数据类型1.1什么是数据类型数据类型可以理解为固定内存大小的别名 数据类型是创建变量的模子1.2数据类型的本质2.变量的本质变量是一段实际连续存储空间的别名 程序中通过变量来申请并命名存储空间 通过变量的名字可以使用存储空间3.编程实验类型与变量的关系#include <stdio.h>#include <stdlib.h...
原创
发布博客 2019.08.30 ·
1389 阅读 ·
2 点赞 ·
0 评论

网络安全传输系统(2)—框架搭建

1.框架搭建需要实现文件上传和下载等的基本功能网络协议采用TCP协议,通过TCP协议传输文件打算采取如下的顺序(针对客户机而言): 1、先发送命令,1代表上传,2代表下载,3代表退出 2、发送文件名 3、发送文件长度 4、发送文件数据 因此对于上传文件客户机和服务器分别遵循如下顺序 客户机: 1、获取需要上传的文件名 2、打开文件 3、发送命令1 4、发送文...
原创
发布博客 2019.08.28 ·
364 阅读 ·
1 点赞 ·
0 评论

网络安全传输系统(1)—功能介绍

1.嵌入式Linux开发方向底层:内核、驱动、Bootloader 应用层:有UI:Android,QT;无U:网络应用2.网络安全传输系统服务器运行在PC Linux系统中,客户端运行在开发板中,客户端可以把文件上传到服务器上面,也可以从服务器上面下载。 系统实现的功能: 基于客户机/服务器模型,能够实现文件的上传和下载; 对TCP包的明文数据通过OpenSSL加密; 采...
原创
发布博客 2019.08.28 ·
533 阅读 ·
1 点赞 ·
0 评论

移动物体监控系统(4)—嵌入式web服务器的移植

一、BOA嵌入式服务器移植1. BOA简介Boa是一种非常小巧的Web服务器,其可执行代码只有大约60KB左右,作为一种单任务Web服务器,Boa只能依次完成用户的请求,而不会fork出新的进程来处理并发连接请求。但Boa支持CGI,能够为CGI程序fork出一个进程来执行,Boa的设计目标是速度和安全,是目前嵌入式领域比较流行的web服务器,智能家居的网关大部分也采用该web服务器作为主...
原创
发布博客 2019.08.28 ·
484 阅读 ·
1 点赞 ·
0 评论

移动物体监控系统(3)—移动监控主系统的设计与开发

一. Ffmpeg的移植ffmpeg是一个开源免费跨平台的视频和音频流方案,它提供了录制、转换以及流化音视频的完整解决方案。移植ffmpeg的目的主要是为了使motion能支持将捕获到的视频流转换成avi格式的视频文件进行存储。因此,我们仅需要移植ffmpeg中如下两个库,而且要在移植Motion之前进行ffmpeg的移植: libavformat:用于各种音视频封装格式的生成和解析,包括...
原创
发布博客 2019.08.27 ·
506 阅读 ·
0 点赞 ·
0 评论

移动物体监控系统(2)—摄像头子系统开发

一、摄像头驱动开发1.摄像头驱动架构视频监控本就是嵌入式Linux的重要应用场合,所以如何合理高效的管理摄像系统,便成为嵌入式Linux一大热点!当前最流行的摄像头软件架构就是V4L2架构,从字面意思知道是专门为Linux设计的一个视频子系统的第二个版本。V4L2有一段历史了。早在1998的时候就出现了,经过长足的发展,它于2002年11 月,发布2.5.46 时,融入了内核主干之中。然而...
原创
发布博客 2019.08.27 ·
2081 阅读 ·
1 点赞 ·
0 评论

移动物体监控系统(1)—声音报警子系统开发

一. 声卡驱动开发1.声卡驱动架构1.1 OSS架构OSS是“开放音频系统”的缩写,是Linux系统早期比较常用一种音频架构!基于文件系统的访问方式操作底层的音频设备,用户空间的程序可以像操作普通文件一样读写相应的音频设备,与之对应的抽象设备文件有: /dev/mixer:用来访问声卡中的混音器进行音量调节; /dev/dsp、/dev/audio:对该设备读相当于录音,写相当于播...
原创
发布博客 2019.08.27 ·
323 阅读 ·
1 点赞 ·
0 评论

Linux—gcc编译参数含义

gcc and g++分别是gnu的c & c++编译器,gcc/g++在执行编译工作的时候,总共需要4步预处理,生成.i的文件:预处理器cpp 将预处理后的文件转换成汇编语言,生成.s文件:编译器egcs 由汇编变为目标代码(机器代码),生成.o的文件:汇编器as 连接目标代码,生成可执行程序:连接器ld1.总体选项-E只激活预处理,这个不生成文件,你需要把它重定向到一...
原创
发布博客 2019.08.23 ·
373 阅读 ·
0 点赞 ·
0 评论

USB驱动程序设计(5)—USB下载线驱动设计

1.模块代码的初始化函数和退出函数static struct usb_driver dnw_driver = { .name = "dnw", /* 驱动名 */ .probe = dnw_probe, /* 捕获函数 */ .disconnect = dnw_disconnect, /* 卸载函数 */ .id_table =...
原创
发布博客 2019.08.22 ·
176 阅读 ·
1 点赞 ·
0 评论

USB驱动程序设计(4)—Linux USB驱动程序设计

1.USB驱动模型 USB设备包括配置(configuration)、接口(interface)和端点(endpoint),一个USB设备驱动程序对应一个USB接口,而非整个USB设备。比如说一个MP4的播放设备,他可以播放视频、也可以播放声音,这2个功能称为一个接口,而每一个驱动只能驱动一个接口,所以如果需要同时播放视频和音频则需要2个驱动程序。 在Linux内核中,使用struct...
原创
发布博客 2019.08.21 ·
278 阅读 ·
0 点赞 ·
0 评论

USB驱动程序设计(3)—Linux USB系统架构

1.软件系统架构软件的系统架构分为2中,一种是主机架构,就是说运行Linux的设备是一个主机,可以插入U盘等设备。 最底部是一个USB主控制器,这是一个硬件,在芯片里面都会带有的。为了让这个主控制器工作起来,Linux需要有一个USB主控制器驱动。 为了方便用户设计USB设备驱动,Linux内核里面实现了一些USB核心,这里面主要是一些Linux协议之类的。USB设备驱动就是针对插入到L...
原创
发布博客 2019.08.21 ·
185 阅读 ·
0 点赞 ·
0 评论

USB驱动程序设计(2)—USB协议分析

1.USB设备逻辑结构在USB设备的逻辑组织中,包含设备、配置、接口和端点4个层次。设备通常有一个或多个配置,配置通常有一个或多个接口,接口有零或多个 端点。每个USB设备都可以包含一个或多个配置,不同的配置使设备表现出不同的功能组合,配置由多个接口组成。在USB协议中,接口代表一个基本的功能,一个功能复杂的USB设备可以具有多个接口,而接口是端点的汇集。 一个USB播放器带有音频,视...
原创
发布博客 2019.08.20 ·
227 阅读 ·
2 点赞 ·
0 评论

USB驱动程序设计(1)—USB总线介绍

1.USB发展史USB(Universal Serial Bus ),通用串行总线,是一种外部总线标准,用于规范电脑与外部设备的连接和通讯。USB是在1994年底由英特尔、康柏、IBM、Microsoft等多家公司联合提出的,自1996年推出后,已成功替代串口和并口,成为当今个人电脑和大量智能设备的必配接口之一。 USB1.0出现在1996年的,速度只有1.5Mb/s,1998年升级为USB...
原创
发布博客 2019.08.19 ·
335 阅读 ·
0 点赞 ·
0 评论

SPI驱动程序设计(2)—Linux SPI子系统

1.SPI子系统架构SPI 子系统架构主要有三部分组成 SPI core核心:用于连接SPI客户驱动和SPI主控制器驱动,并且提供了对应的注册和注销的接口。 SPI controller driver主控制器驱动:用来驱动SPI控制器。 SPI protocol drvier客户驱动:用来驱动SPI设备。 2.SPI控制器驱动分析1.SPI控制器驱动对应的内核文件在/dr...
原创
发布博客 2019.08.19 ·
188 阅读 ·
0 点赞 ·
0 评论

SPI驱动程序设计(1)—SPI总线介绍

1.SPI总线结构SPI(Serial Peripheral Interface)串行外设接口,是一种高速的,全双工,同步的通信总线。采用主从模式 (Master Slave)架构,支持多个slave,一般仅支持单Master。SPI接口共有4根信号线,分别是:设备选择线(SS)、 时钟线(SCK)、串行输出数据线(MOSI)、串行输入数据线(MISO)。2.数据传输过程主节点...
原创
发布博客 2019.08.19 ·
404 阅读 ·
1 点赞 ·
0 评论
加载更多