自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

黑色幽默的专栏

好好学习,天天吃饭

  • 博客(84)
  • 资源 (7)
  • 收藏
  • 关注

原创 一个解析ifconfig命令行参数的shell

一个简单shell,用于解析ifconfig命令行参数

2024-03-20 16:36:01 106

原创 eBpf技术总结

eBPF (扩展的伯克利数据包过滤器) 是一项强大的网络和性能分析工具,其在内核中的实现为一个基于寄存器的虚拟机,使用自定义的 64 位 RISC 指令集,运行本地即时编译(JIT)的 “BPF 程序, 并能访问内核功能和内存的一个子集。

2024-03-12 14:22:57 706

原创 kprobe总结

kprobe原理相关api版本依赖架构依赖测试用例调试技巧kernel 原文。

2024-03-12 14:12:01 615

原创 thrift RPC通信

Thrift是一种接口描述语言和二进制通讯协议,它被用来定义和创建跨语言的服务。它被当作一个远程过程调用(RPC)框架来使用,是由Facebook为“大规模跨语言服务开发”而开发的。它通过一个代码生成引擎联合了一个软件栈,来创建不同程度的、无缝的跨平台高效服务,可以使用C#、C++(基于POSIX兼容系统)、Cappuccino、Cocoa、Delphi、Erlang、Go、Haskell、Java、Node.js、OCaml、Perl、PHP、Python、Ruby和Smalltalk。虽然它以前是由Fa

2022-06-01 12:12:57 777

原创 mqtt客户端c语言开发

MQTT客户端MQTT客户端开发简介架构图传输层协议层MQTT客户端开发MQTT(消息队列遥测传输)工作在 TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议。本篇博客主要记录客户端采用paho库二次封装,适配linux/win平台,使用c++语言开发。主要内容包括,设计思想、架构设计、程序源码等。简介开发mqtt客户端,首先选定paho库作为基础收发库,应用具有自己的通信协议,mqtt客户端需要将数据按照协议封装,然后调用paho库进行收发

2022-05-30 10:39:28 3715

翻译 指纹功能适配文档

指纹功能适配文档本文档主要介绍第三方设备厂商如何将指纹功能集成到系统中,另外也简单描述了系统上的用户认证流程。指纹功能的集成需要实现系统定义的指纹接口规范,然后将实现的接口程序安装到系统中,并提供规范中定义的配置文件,就可在重启后使用系统的指纹功能了。在介绍适配步骤之前,先介绍下系统的认证流程。认证流程系统上对用户认证提供了一套统一的接口,这个认证接口负责启用具体的认证方式,如启用密码认证、指纹认证等。认证的结果通过 DBus Signal 发出, DBus Signal 没有具体的目标,可以认

2022-01-04 10:14:58 598 1

翻译 认证服务架构

认证服务架构背景Linux 默认使用 PAM 作为认证框架,通过模块的方式添加不同的认证方式。但这种方式对于多路认证、多因子认证等方式支持困难,并且也不便于适配新的认证方式。基于用户体验和适配的需要, UOS 设计并实现了一套认证服务,认证服务依然基于 PAM ,但在认证方式的添加上设计了新的规范。设计的原则如下:提供认证方案接入规范,便于适配支持多路认证,增强用户体验支持多因子认证,增强安全性基于 =PAM= 框架,应用无需修改架构UOS 的认证服务架构如下:流程应用依然

2022-01-04 10:12:27 385

翻译 多因子认证应用配置

多因子认证应用配置配置采用json配置方式,配置内容如下:{ "ApplicationType" : "login", "RequestVerificationType" : [ { "Type": "password", "Service": "" }, { "Type": "fingerprint", "Service": ""

2022-01-04 10:11:00 284

翻译 ukey功能适配文档

ukey 功能适配文档本文档主要介绍第三方设备厂商如何将 ukey 功能集成到系统中,另外也简单描述了系统上的用户认证流程。ukey 功能的集成需要实现系统定义的 ukey 接口规范,然后将实现的接口程序安装到系统中,并提供规范中定义的配置文件,就可在重启后使用系统的 ukey 功能了。认证流程系统上对用户认证提供了一套统一的接口,这个认证接口负责启用具体的认证方式,如启用密码认证、指纹认证等。认证的结果通过 DBus Signal 发出,DBus Signal 没有具体的目标,可以认为是广播的方式

2022-01-04 10:04:18 1096

翻译 ukey代理接口设计文档

ukey代理接口设计文档ukey代理的功能作为代理,接受上层 com.deepin.daemon.Authenticate 或者其他调用方的调用,开启指定的厂商 ukey 服务并认证,并接收厂商 ukey 认证信号,代理处理完此信号之后,发送认证信号出去,供监听此信号的服务使用。ukey 需要支持多设备同时认证,不一定是一个 ukey 服务的多次同时认证,也可以是多个 ukey 服务的单次同时认证。ukey代理接口SetDefaultDevice(string device) -> ()

2022-01-04 10:00:58 521

翻译 deepin认证接口

deepin认证接口目的deepin 上通常是使用密码进行认证,对于指纹,人脸等没有统一的接口,需要使用者单独适配,不方便使用。为了统一认证接口,故设计了此接口,用于适配指纹、人脸等认证方式,下文将详细描述这套接口。认证接口接口通过 DBus 的方式提供,接口的 DBus服务信息如下:Servicecom.deepin.daemon.AuthenticatePath:/com/deepin/daemon/AuthenticateInterface:com.deepin.da

2022-01-04 10:00:00 1482

翻译 deepin 指纹接口规范

deepin 指纹接口规范deepin 下有两种适配指纹设备的方法,分别是 fprintd 和 deepin 自定义的接口规范,这两种方式中我们推荐使用 fprintd 的方式。fprintd使用 fprintd 的方式适配时需要先了解 [[https://fprint.freedesktop.org/][libfprint]] 这个项目,因为设备的驱动是在 libfprint 中实现的,即基本上只需要修改 libfprint 项目即可,按照规则添加需要适配的指纹设备驱动。具体如何添加驱动这里就不描

2022-01-04 09:58:50 1163

原创 deepin系统修改原生锁屏界面

UOS/DEEPIN修改原生DDE-LOCK本文部分内容来源于deepin官方github,地址:https://github.com/linuxdeepin10/14/2021 4:35:01 PM资源列表:DTK API 文档:DTK 的 API 接口中文说明,自动同步更新Deepin 社区文档:核心为 DTK 团队的文档积累,社区爱好者的作品展示、技术交流QtExamples:个人积累,为 DTK 的源码架构一些理解和实战Deepin Wiki: Deepin 在 GitHub

2021-10-15 10:44:21 1356

转载 Dynamic DMA mapping Guide

Dynamic DMA mapping Guide一、前言二、从CPU角度看到的地址和从DMA控制器看到的地址有什么不同?三、什么样的系统内存可以被DMA控制器访问到?四、DMA寻址限制五、两种类型的DMA mapping六、如何使用coherent DMA mapping的接口?七、DMA操作方向八、如何使用streaming DMA mapping的接口?九、错误处理一、前言这是一篇指导驱动工程师如何使用DMA API的文档,为了方便理解,文档中给出了伪代码的例程。另外一篇文档dma-api.txt

2020-05-14 10:07:01 319

原创 使用gsoap生成onvif协议工程

简介gsop工具gsop定义为一个工具,他的作用是根据xml等的配置文件生成符合onvif协议的webserver的c/c++源代码The gSOAP toolkit is a C and C++ software development toolkit for SOAP and REST XML Web services and generic C/C++ XML data bindings...

2020-03-31 14:21:43 1253

原创 嵌入式监控【v4l2采集->vpu编码->live555推流】

嵌入式监控【v4l2采集->vpu编码->live555推流】文章目录嵌入式监控【v4l2采集->vpu编码->live555推流】介绍v4l2确定uvc的输出格式YUYV 转 YUV420播放采集到的yuv420数据vpu硬编码使用mxc_vpu_test.out 硬件编码h264使用live555MediaServer推流在上一博客中介绍了视频监控的采用库和相关架...

2020-03-13 09:38:08 3487 4

原创 移植Opencv3.4.1到armA9开发版

移植Opencv3.4.1到armA9开发版在imx6q开发版上作人脸识别,采用opencv的软算法,在此记录opencv3.4.1 的移植过程。文章目录移植Opencv3.4.1到armA9开发版安装交叉编译工具链接安装cmake编译opencv-3.4.1编译opencv_contrib-master总结安装交叉编译工具链接安装开发版对应的交叉编译工具链,我下载的是linaro的5...

2020-02-29 23:52:13 449

原创 使用live555视频监控

使用live555作视频监控文章目录使用live555作视频监控1 代码目录2 代码结构3主要源码3遇到的问题链接1 代码目录.├── main.cpp├── Makefile├── videoMonitor.cpp├── videoMonitor.h├── x264Encoder.cpp└── x264Encoder.h2 代码结构结构很简单,我将所有工作封装到class ...

2020-02-28 10:24:05 1656 3

原创 嵌入式视频监控

嵌入式视频监控目前,嵌入式系统在视频监控中的应用越来越广泛。伴随着网络的强大功能,视频监控更侧重网络监控方案,要求体积小、远程化、成本低、功耗小、操作界面人性化等。本系统基于嵌入式Linux 平台上利用USB 摄像头采集视频图像,通过视频图像压缩及结合网络进行视频图像传输,使远程监控成为可能。文章目录嵌入式视频监控1 系统介绍1.1 协议介绍1.2 onvif 协议1.3 rtsp 协议...

2020-02-23 21:39:32 3742 5

原创 使用kdump捕获kernel的崩溃

kdump是在系统崩溃、死锁或者死机的时候用来转储内存运行参数的一个工具和服务。背景介绍在linux系统软件开发的过程中,会遇到开发完的程序导致kernel崩溃,此时我们想要查找崩溃留下的蛛丝马迹来定位bug,但是此时kernel已经崩溃了,平时定位bug的命令和工具都不能工作了,唯有断电重启,此时可以采用kdump工具,定位kenel崩溃。工具介绍kdump是一种先进的基于 ...

2019-10-23 15:57:05 2530

原创 ubuntu系统使用eclipse+openocd+openjtag/jlink开发stm32

环境搭建篇ubuntu系统使用eclipse+openocd+openjtag/jlink开发stm32 相信很多同学在学习stm32,环境搭建很麻烦,这里总结一下,希望可以方便小伙伴们。 ubuntu系统使用eclipse+openocd+openjtag/jlink开发stm32环境介绍安装openjtag或jlinkopenjtag驱动安装jl...

2018-03-27 09:47:47 2439

原创 stm32 定时器学习

时钟time3定时器这里使用stm32f407,在学习定时器,再次总结一下。 软件环境:使用st官方的两个软件,stm32cubemx + trueSTUDIO,原因是st在大力推广这两个开发套件。 cubemx提供的是HAL库,这个库是发展趋势,封装更完善,移植更方便; trueSTUDIO编辑器完美支持cubemx,使用eclipse的软件,自己完善出来的,自带插件工具...

2018-03-21 12:10:36 1863

原创 beaglebone设置gpio

beaglebone设置gpio系统:Linux beaglebone 4.4.9-ti-r25 #1 SMP Thu May 5 23:08:13 UTC 2016 armv7l GNU/Linux 硬件:beagleboneblack使能gpio首先要使能gpio,如何查看想要的gpio是否已经使能了,也就是查看他的工作模式mode。在目录/sys/kernel/debug/...

2018-02-28 17:04:17 1439 2

原创 无屏幕使用树莓派3

无屏幕使用树莓派3本blog部分内容来源于网络,经过个人整理所得.目录:无屏幕使用树莓派简介安装系统开启ssh设置eth0联网设置wifi 联网设置静态简介它是一款基于ARM的微型电脑主板,以SD/MicroSD卡为内存硬盘,卡片主板周围有1/2/4个USB接口和一接口和HDMI高清视频输出接口,以上部件全部整合在一张仅比信用卡稍大的主板

2018-02-07 13:51:53 1187

原创 开发板和qt中文显示异常解决方法记录

使用beagleboneblack开发,陆陆续续遇到很多问题,再次记录下,开发板中文显示异常解决办法。

2017-09-28 11:42:58 2024 1

原创 移植qt5.6.0到armv7 <完整过程>

移植qt5.6.0到armv7 <完整过程> 概述:本log记录移植qt的整个过程,包括从安装虚拟机到最后编译成功,因为其中任何一个细节都可能导致移植失败目录移植qt560到armv7 完整过程目录环境环境介绍环境搭建下载软件安装安装交叉编译工具安装tslib14targz安装qt-everywhere-opensource-src-560-alphatargz安装arm-

2017-09-06 17:08:46 5157 1

原创 学习ext2文件系统

最近在学习ext2文件系统,由于各种原因,学习过程断断续续。再次记录学习中的坑和重点,作为以后写出优秀博客的基石。网上有很多ext相关的博客,但是很多都是转载和抄袭的,非常不负责任,错漏百出。包括《深入理解linux内核》中第十八章“Ext2和Ext3文件系统”,其中的错误很误解人,或者说用词很不严谨,例如:732页下方介绍超级块和组描述符,是这样说的:超级块与组描述符被复制到每个块组中。这句话就很

2017-04-10 10:05:44 560

原创 linux线程安全

为防止多线程同时访问同一个变量,而产生错误,需要对变量或代码区加锁,只允许一个线程操作变量。 锁的种类有四种:自旋锁(SpinLock):锁的目的是为了保护共享资源,实现线程同步。自旋锁区别于其他锁的地方在于若某线程在未获得锁时将不断的询问(判断)自旋锁保持者是否释放了锁(获取锁操作将自旋在那里,不断地申请获取,直到自旋锁保持者释放了锁),因此比较适用于保持锁时间比较短的情况(CPU一直在空转)

2017-03-15 10:31:03 635

原创 盗版毕加索

突然感触blog对于开发人员是多麽的重要,无论你是否写过blog,只要你身在技术的阵营中,就一定从blog中受益过。至于写与不写,只是个人习惯问题。 我是android菜鸟,此篇blog写给同样刚刚进入android怀抱的菜鸟们,让我们尽情的fighting with android!最近在开发一个程序,用到了GridView这个View,遇到的问题就是当加载的图片达到50k以上时,GridV

2016-11-25 17:15:43 544

原创 android事件分发

android中的事件分发

2016-11-16 11:26:54 270

原创 eclipse虚拟机adb启动失败

在使用clipse开发android是总是在启动虚拟器时失败,失败日志为 ”’ c * daemon not running. starting it now * ADB server didn’t ACK * failed to start daemon * ”’解决方式就是重启adb和eclipse 首先是重启adb,两种方法重启adb程序 1、将adb程序添加到环境变量中,打开

2016-10-29 11:17:03 703

原创 android自定义viewGroup常用方法

android常用控件可能在开发过程中不能满足我们的需求,所以常常需要自定义控件,这里总结了使用viewGroup自定义控件的方法,以及我的个人经验的总结。首先介绍viewGroup java.lang.Object ↳ android.view.View ↳ android.view.ViewGroup ↳ android.widget.LinearLayout

2016-10-25 10:15:52 664

原创 深入理解dvm和jvm

学习android想要对android的framwork或者运行机制有深入了解,dvm是一定要知道的。即使是在面试时被问起dvm和jvm也是很平常的,网上关于dvm和jvm的文章很多,但是没有一篇能把dvm的前世今生彻头彻尾的讲清的,在这里我结合网络资源和自身对编译原理以及嵌入式的理解在这里斗胆揭示下dvm的全貌,不对的地方欢迎再下方留言。kernel启动流程众所周知,android使用的是lin

2016-10-10 11:30:33 4906

原创 linux驱动笔试题总结

linux驱动笔试题总结试题取之于网络,用之于民。最近在学习linux驱动,驱动开发在笔试的时候考的知识点是有规律可循的,并且这些面点也是平时驱动工作中的理论指导,深刻的理解这些面点还是很有必要的,所以在此总结记录,相信会用到的。 ps:以后面试驱动,谁在问我这些问题,我鄙视死他。权威答案整蒙b他。linux驱动笔试题总结1linux中内核空间及用户空间的区别用户空间与内核通信方式有哪些2li

2016-07-12 12:26:29 6808

原创 制作u盘启动linux系统

制作u盘启动linux系统本文记录我制作u盘驱动的过程,按照这篇教程,你可以得到一个装有linux3.10.10操作系统的u盘,可以启动x86架构的主板,文件系统使用busybox制作。制作u盘启动linux系统所需工具第一步为u盘分区第二步为u盘安装grub第三步编译kernel第四步制作文件系统第五步启动吧u盘君所需工具高质量u盘一个,容量大于4Glinux3.10.10内核源码

2016-05-17 21:29:03 4374

原创 ARM中断体系结构

ARM中断体系结构arm体系结构cpu工作的七种模式用户模式(usr):ARM处理器正常的程序执行状态系统模式(sys):运行具有特权的操作系统任务管理模式(svc):操作系统使用的保护模式中断模式(irq):用于通用的中断处理快速中断模式(fiq): 用于高速数据传输或通道处理数据访问终止模式(abt):当数据或指令预取终止时进入的模式未定义模式(und):当未定义指令执行时,进入该

2016-04-19 10:21:52 863

原创 嵌入式裸板为什么要ld设置text段地址

在学习嵌入式,编写裸板程序时,遇到在Makefile中需要定义text的地址,感到很疑惑(我比较菜,大婶出门右拐),因为之前都是在linux系统上执行程序。example:.extern main.text.global _start_start:Reset:ldr sp, =4096bl disable_watch_dogbl memesetupb

2016-04-08 15:16:20 1062

转载 busybox里的init

busybox里的initbusybox被大家比作瑞士军刀,主要是它以很小的体积提供给我们很多很有用的shell指令。但是这里我们要关注的是busybox的init。内容有些多,我们结合它的init.c的代码做简单介绍(busybox-1.11.2/init/init.c)。1、首先busybox的init会尝试只读方式打开inittab,并读取里面的配置:static v

2015-11-19 10:47:45 623

原创 运行于u盘的精简linux系统制作

运行于u盘的精简linux系统制作1、裁剪linux内核        如何裁剪linux系统,主要是设置menuconfig,里面有很多设置,按照“金钟国”大神的教程,一步一步来就可了。这里不在赘述。        强调一下生成的文件格式,        vmlinuz的建立有两种方式。        一是编译内核时通过“make zImage”创建,手动拷贝到/boot目录

2015-11-18 16:34:10 2476

转载 pthread_cond_signal与pthread_cond_wait详解

pthread_cond_signal与pthread_cond_wait详解 2012-12-31 01:54:17分类: C/C++//pthread_cond_signal 只发信号,内部不会解锁,在Linux 线程中,有两个队列,分别是cond_wait队列和mutex_lock队列, cond_signal只是让线程从cond_wait队列移到

2015-08-19 14:50:26 876

linux平台thrift简单实例

linux平台,基于thrift-0.16.0版本创建的简单client和server调用实例,可完成RPC通信,源码基于C语言实现,包括cpp源码和Makefile,简单易用,便于理解thrift机制。

2022-06-01

live555 视频监控demo源码

两个线程实现视频监控,一个线程使用opencv读取uvc数据到fifo,另外一个线程使用live555实现rtsp。makefile等直接可用,安装vlc后可直接看到效果,延时在3s左右。

2020-02-28

盗版Picasso

这有什么好说的,看我blog[http://blog.csdn.net/mr_zhaojy/article/details/53337544] 实现imageview的二级缓存和异步加载

2016-11-25

Linux网络编程电子书.rar

第一章 linux网络编程概述 第二章 tcp/ip 第三章 套接字函数 第四章 tcp客户机服务器程序实例 第五章 udp套接字 第六章 进程和信号 第七章高级套接字函数 第八章 套接字选项 第九章 进程间的通信 第十章 带外数据 第十一章 原始套接字 第十二章 输入输出模型 第十三章 服务器模型 第十四章 服务器/客户端程序源码(qq模拟和网上选课系统)

2013-08-01

3gpp文档(3GPP TS 29.212 version 7.4.0 Release 7)

对3gpp通信协议的文档,这个是我找了好久的,非常正规。

2013-07-30

matlab源码

matlab源码。.m文件,一个简单的小例子,适合菜鸟学习,如果是大神或接触过matlab就别浪费你的流量了

2013-03-26

apit定位算法

apit算法的定位原理,很清楚哦。无线传感网络apit定位算法,无测距离的定位算法。

2013-03-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除