自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(103)
  • 资源 (7)
  • 收藏
  • 关注

原创 交叉编译libusb和libusb-compat-0.1.5

1. 下载libusb库:https://jaist.dl.sourceforge.net/project/libusb/libusb-1.0/libusb-1.0.22/libusb-1.0.22.tar.bz22. 编译安装libusb:tar -xvf ./libusb-1.0.22.tar.bz2cd ./libusb-1.0.22mkdir build./configure...

2020-01-18 10:19:18 1348 3

原创 构建根文件系统

1. 下载busyboxhttps://busybox.net/downloads/busybox-1.31.0.tar.bz22. 配置、编译、安装busybox2.1 配置busybox$ make menuconfig1) 选择静态编译2)交叉编译工具路径2.2 编译$ make CROSS_COMPILE=mips-linux-gnu- ARCH=mip...

2019-08-01 18:52:30 581

原创 再读计算机网络

1. 三次握手和四次挥手1.1 三次握手:客户端主动打开连接服务端,客户端发送SYN=1、seq=c 到服务端且客户端进入SYN_SEND状态,服务端发送确认SYN=1、ACK=1、ack=c+1、seq=s 且服务端进入SYN_RCVE状态,客户端再次对服务端的确认进行确认,ACK=1、ack=s+1、seq=c。自此连接建立。当第三次握手失败时服务端不重传ack报文而是发送RST(...

2019-03-31 18:20:24 420

原创 再读linux驱动程序设计

1. 编译内核1.1 安装内核man手册1.1.1 配置编译内核make menuconfig执行后直接退出make -j 4make modulesmake modules_install INSTALL_MOD_PATH=./build //安装模块1.1.2 生成内核函数man手册sudo pip install -U Sphinxsudo pip i...

2019-03-29 16:19:48 739

原创 内联函数

内联函数最好定义在头文件里,因为内联函数要在调用点展开,所以编译器必须随处可见内联函数的定义,要不然,就成了非内联函数的调用了.所以,这要求每个调用了内联函数的文件都出现了该内联函数的定义。类中定义的函数默认是内联函数。内联函数在调用处展开,避免了函数调用时低开销。inline关键字只是告诉编译器应该采取内联方式调用,最后能否真正内联,看编译器是否支持。宏在预处理时展开,内联函数在编译...

2018-11-21 17:58:39 247

原创 ubuntu 安装 wine3.0.3

在ubuntu上也有使用QQ和钉钉等windows程序得需求,这时安装wine来使用QQ等windows程序。在ubuntu上使用sudo apt-get install wine命令安装的往往是wine的早期版本,因为其版本太老,在使用它安装windows程序过程中经常崩溃,现在推荐使用wine的较新版本。下面说一下怎么安装wine的最新版本。对于ubuntu 18.10:添加仓储:...

2018-11-20 10:52:27 2872

原创 指针和数组

1. 指针和素组的访问过程1.1 数组访问数据过程首地址加上偏移量,然后取出地址内容。1.2. 指针访问数据过程从指针变量取出保存的地址,取出地址中保存的数据。1.3. 指针使用下标访问数据首先取出指针变量的地址,然后与偏移量i相加,最后取出改地址的内容。 2. 当数组和指针作为函数的形参时,数组和纸指针相同。 3. char a[] = "ab...

2018-11-19 18:38:29 176

转载 C++ 左值和右值

左值、右值在C++11中所有的值必属于左值、右值两者之一,右值又可以细分为纯右值、将亡值。在C++11中可以取地址的、有名字的就是左值,反之,不能取地址的、没有名字的就是右值(将亡值或纯右值)。举个例子,int a = b+c, a 就是左值,其有变量名为a,通过&a可以获取该变量的地址;表达式b+c、函数int func()的返回值是右值,在其被赋值给某一变量前,我们不能通过变量名找...

2018-11-19 14:43:42 886 1

原创 dbus

DBUS及常用接口介绍:https://blog.csdn.net/mr_wangning/article/details/60324291和菜鸟一起学linux之DBUS基础学习记录:https://blog.csdn.net/eastmoon502136/article/details/10044993 https://blog.csdn.net/gentlycare/ar...

2018-10-10 09:56:08 2598

原创 kvlist ssdp jsonrpc

kvlist https://segmentfault.com/a/1190000002391954ssdp https://blog.csdn.net/swanabin/article/details/52024800jsonrpc https://www.cnblogs.com/cielosun/p/6762550.html

2018-10-09 14:56:30 351

转载 adns解析库——域名解析实例(C++、linux)

adns是一个开源的dns解析库官方文档:http://www.chiark.greenend.org.uk/~ian/adns/1. 初始化 adns_state   adns; adns_query   query; adns_answer   *answer;   函数原型: int adns_init(adns_state *new...

2018-10-08 18:30:49 3462 1

原创 ubus实现进程间通信举例

https://blog.csdn.net/jasonchen_gbd/article/details/46055885https://www.cnblogs.com/embedded-linux/p/6791560.html

2018-09-28 14:56:49 1052

转载 使用ubus实现进程通信

ubus为openwrt平台开发中的进程间通信提供了一个通用的框架。它让进程间通信的实现变得非常简单,并且ubus具有很强的可移植性,可以很方便的移植到其他linux平台上使用。本文描述了ubus的实现原理和整体框架。ubus源码可通过git库 git://nbd.name/luci2/ubus.git 获得,其依赖的ubox库的git库:git://nbd.name/luci2/ubox.g...

2018-09-28 11:30:44 2785

转载 C语言和设计模式(总结篇)

 设计模式的书相信很多人都看过。对于设计模式这样一种方法,相信不同的人有不同的理解。我在这里写的博客只是我个人对设计模式的粗浅认识。文中肯定存在很多的不足和不成熟之处,希望朋友们谅解。望大家多多指正,谢谢! 01)C语言和设计模式(继承、封装、多态)02)C语言和设计模式(访问者模式)03)C语言和设计模式(状态模式)04)C语言和设计模式(命令模式)05)C语言和设计模式...

2018-08-03 18:43:15 3188

原创 使用C进行面向对象编程

stack.h#ifndef __STACK_H__#define __STACK_H__#include <stdio.h>#include <string.h>#include <stdlib.h>#include <stdbool.h>#ifdef __cplusplusextern "C"{#endifstruc...

2018-08-03 15:11:15 1116

转载 内存分配的三种方式

内存分配有三种方式:一:从全局存储区域分配:这时内存在程序编译阶段就已经分配好,该内存在程序运行的整个周期都有效,如:全局变量、static静态变量。二:从栈区分配:在执行函数的时候,函数中的局部变量的存储单元都可以从栈中分配,函数执行结束后这些存储单元都会被自动释放,实现从栈中分配存储单元运算操作内置于处理器的指令集中,效率很高 但是分配的内存容量有限。三:从堆中分配:也称为动态内存...

2018-07-23 16:54:36 3202

转载 QTableWidget的用法总结

在使用Qt不多的日子里,已经两次用到了QTableWidget这个控件,也慢慢的习惯和喜欢上了它。再使用QTableWidget的时候,已不像刚开始使用时的迷茫。嗯嗯。现在就来总结总结我与QTableWidget相识的历程……(^__^) 嘻嘻……使用时也查过不少资料,在此感谢前辈们的用心总结与分享!1.QTableWidget不能在mainwindow中随主窗口的大小变化?解决:在表...

2018-07-21 14:34:35 1448

转载 udp打洞原理

UDP打洞的过程大致如此: 1、双方都通过UDP与服务器通讯后,网关默认就是做了一个外网IP和端口号 与你内网IP与端口号的映射,这个无需设置的,服务器也不需要知道客户的真正内网IP 2、用户A先通过服务器知道用户B的外网地址与端口  3、用户A向用户B的外网地址与端口发送消息,  4、在这一次发送中,用户B的网关会拒收这条消息,因为它的映射中并没有这条规则。  5、但是用户A的网关就会增加了一条...

2018-07-14 16:16:15 2614

原创 curl-dome

#include <stdio.h>#include "curl/curl.h"FILE *fp = NULL;size_t write_func(void* ptr,size_t size,size_t n,void *stream){ int writen = fwrite(ptr,size,n,fp); return writen;}int m...

2018-07-13 16:41:16 175

转载 LibCurl使用小结

一、LibCurl基本编程框架libcurl是一个跨平台的网络协议库,支持http, https, ftp, gopher, telnet, dict, file, 和ldap 协议。libcurl同样支持HTTPS证书授权,HTTP POST, HTTP PUT, FTP 上传, HTTP基本表单上传,代理,cookies,和用户认证。想要知道更多关于libcurl的介绍,可以到官网 http:...

2018-07-13 10:26:31 3924

原创 linux c 编程之 udp

客户端:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/types.h> /* See NOTES */#include <sys/socket.h>#include <netinet/in.h>#incl...

2018-07-10 18:31:59 258

原创 Qt5.7下的串口编程

需要在pro文件添加QT += serialportserial.h#ifndef SERIAL_H#define SERIAL_H#include <QMainWindow>#include <QSerialPort>#include <QSerialPortInfo>#include <QDebug>#include &...

2018-07-09 16:17:48 4835 1

原创 伸缩型数组成员

1. 伸缩型数组成员有如下规则(1) 伸缩型数组必须是结构体的最后一个成员。(2) 结构体至少有一个成员。(3)伸缩型数组类似普通数组,只不过他的放括号里面是空的。例如:struct argv{       int sum;       int a[];};伸缩型数组使用malloc分配内存。#include <stdio.h>struct argv{ int sum;...

2018-07-04 10:34:03 562

原创 复合字面量(C99)

语法,把类型名放到圆括号里面,后面紧跟一个花括号扩起来的初始化列表。int *a = (int []){1,2};例如:#include <stdio.h>struct argv{ char a[64]; int b;};int func(struct argv a){ printf("argv.a=%s argv.b=%d\n",a.a,a.b...

2018-07-03 14:03:48 2639 1

原创 Uboot的移植中遇到的一些问题,及解决方法。

首先感谢tekkamanninja分享的源码:https://github.com/tekkamanninja/u-boot-2010.03-tekkaman,也可以参考友善之臂的移植手册。由于本学期主要学习exyson 4410,对mini2440了解比较少,通过查看数据手册,移植手册,分析源码,学习了uboot的工作原理,启动过程。下面就说一下我遇到的问题,及其解决方法。1

2018-06-30 14:30:10 5017 2

转载 BNF语音识别文件格式简介

此文分析离线语音识别的语义规则文件,即BNF文件,一般放在Android Studio的Assets文件夹下。本大侠使用的是科大讯飞的语音识别SDK,所以以下所有规则在此SDK下实测有效1、结构简单的说,BNF文件分为五个部分:文档标示头;(不要去改就对了)语法名称;槽声明;主规则(可引用子规则);文档主体(具体的定义槽、引用规则)2、定义2.1 文档标示头这个不细说,按默认来就好,它定义了文档的...

2018-06-30 11:45:12 4329 2

转载 C++之tinyXML使用

转自:http://blog.csdn.net/L_Andy/article/details/40615517tinyXML一款很优秀的操作C++类库,文件不大,但方法很丰富,和apache的Dom4j可以披靡啊!习惯了使用java类库的我看到这么丰富的c++类库,很高兴!它使用很简单,只需要拷贝几个文件到你的工程中,没有STL也可以编译运行。         下面我从这几个方面谈谈对

2018-01-26 15:29:18 456

转载 Base64编码的C语言实现

本文转自http://blog.163.com/lixiangqiu_9202/blog/static/5357503720140593058179/Bse64是一种以64个可打印字符对二进制数据进行编码的编码算法。base64在对数据进行编码时以三个8位字符型数据为一组,取这三个字符型数据的ASCII码,然后以6位为一组组成4个新的数据,这4个新的数据有6位,所以它的最大值为2^6=64

2018-01-20 17:05:01 552

转载 Base64加密原理

Base64是一种加料置位加密法,那为什么叫base64呢?因为无论明文是什么(比如汉字,特殊符号等),加密后的密文都只会变成字母A-Z、a-z和0-9 和+和/这64个字符,被他加密体后积一般会变成原来的4/3。Base64的标准在RFC2045里的24页可以看到。http://wenku.baidu.com/view/bd567523aaea998fcc220e8e.html

2018-01-20 16:34:18 451

原创 jsonc-api

编译假如出错时:忽略指定库libcmt.lib  libcmdtd.lib(debug)  在哪加不用我说吧解析的时候有一点点小问题 :比如 http://baidu.com   解出来后是http:\/baidu.com ,需修改原代码json_object.c 中  json_escape_st函数大约第20行的位置  else if(c == '/') p

2018-01-20 12:16:34 1141

转载 线程定时器

名称       timer_create - create a POSIX per-process timer摘要       #include        #include        int timer_create(clockid_t clockid, struct sigevent *sevp,                        timer_t

2018-01-09 09:26:03 1074

翻译 多线程下变量-原子操作

最近编码需要实现多线程环境下的计数器操作,统计相关事件的次数。下面是一些学习心得和体会。不敢妄称原创,基本是学习笔记。遇到相关的引用,我会致谢。    当然我们知道,count++这种操作不是原子的。一个自加操作,本质是分成三步的:     1 从缓存取到寄存器     2 在寄存器加1     3 存入缓存。    由于时序的因素,多个线程操作同一个全局变量,会出现问题。这也

2018-01-08 15:54:49 1033

原创 I2S协议

1. 接口针对不同的数字音频子系统,出现了几种微处理器或DSP与音频器件间用于数字转换的接口。最简单的音频接口是PCM(脉冲编码调制)接口,该接口由时钟脉冲(BCLK)、帧同步信号(FS)及接收数据(DR)和发送数据(DX)组成。在FS信号的上升沿,数据传输从MSB(Most Significant Bit)字开始,FS频率等于采样率。FS信号之后开始数据字的传输,单个的数据位按顺序进行传

2018-01-02 17:43:26 1809

转载 QoS的基本原理

1 前言QoS(Quality of Service)是服务质量的简称。对于网络业务来说,服务质量包括哪些方面呢?从传统意义上来讲,无非就是传输的带宽、传送的时延、数据的丢包率等,而提高服务质量无非也就是保证传输的带宽,降低传送的时延,降低数据的丢包率以及时延抖动等。广义上讲,服务质量涉及网络应用的方方面面,只要是对网络应用有利的措施,其实都是在提高服务质量。因此,从这个意义上来说,防火墙

2017-12-19 09:34:34 132859 3

转载 RTP/RTCP/RTSP/SIP/SDP

RTPsdfsReal-time Transport Protocol)是用于Internet上针对多媒体数据流的一种传输层协议。RTP协议详细说明了在互联网上传递音频和视频的标准数据包格式。RTP协议常用于流媒体系统(配合RTCP协议),视频会议和一键通(Push to Talk)系统(配合H.323或SIP),使它成为IP电话产业的技术基础。RTP协议和RTP控制协议RTCP一起使

2017-12-19 09:31:21 489

转载 sip与sdp

sip协议基础 会话初始协议(seesion initiation protocol)是一个控制发起,修改和终结交互式多媒体会话的信令协议。 sip是一个基于文本的协议。http请求与sip请求:http:GET /index.html HTTP/1.1SIP:INVITE sip:seven@freeswitch.org.cn SIP/2.012345在http请求中

2017-12-19 09:25:01 3605

转载 什么双机热备? 为什么要做双机热备? 双机热备有哪几种?

双机热备知识简介1、 双机热备名词解释  从广义上讲,就是对于重要的服务,使用两台服务器,互相备份,共同执行同一服务。当一台服务器出现故障时,可以由另一台服务器承担服务任务,从而在不需要人工干预的情况下,自动保证系统能持续提供服务。 双机热备由备用的服务器解决了在主服务器故障时服务不中断的问题。但在实际应用中,可能会出现多台服务器的情况,即服务器集群。 双机热备一般情况下需要有共享的存

2017-11-08 16:43:37 17222

转载 回调函数和钩子函数

什么是回调函数?   简而言之,回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。   为什么要使用回调函数?   因为可以把调用者与被调用者分开。调用者不关心谁是被调用者,所有它需知道的,只是存在一个具有某种特定原型、某些限制条件(如返回值为 int )的被调用函数。 

2017-09-07 11:02:27 603

转载 Makefile 使用总结

在Makefile中我们经常看到 = := ?= +=这几个赋值运算符,那么他们有什么区别呢?我们来做个简单的实验新建一个Makefile,内容为:ifdef DEFINE_VRE    VRE = “Hello World!”elseendififeq ($(OPT),define)    VRE ?= “Hello World! First!”endif

2017-09-06 17:32:05 385

原创 ARM处理器中的char

C标准上char可以带符号也可以不带符号,但是具体的平台又有所不同。在大多数的体系结构中char是带符号的,但是在ARM体系中char是不带符号的其取值范围是0 - 255。如下面的代码:                              图一在X86平台:                              图二在基于ARM的HI3518

2017-08-29 10:21:11 1151

Qt5.7串口编程

Qt5.7串口编程Qt5.7串口编程Qt5.7串口编程Qt5.7串口编程Qt5.7串口编程

2018-07-09

1602液晶资料

1602液晶资料

2016-08-05

1602显示屏工程

1602显示屏工程

2016-08-05

DS3231SN完整代码

DS3231SN完整代码

2016-08-05

DS3231中文数据手册

DS3231中文数据手册

2016-08-05

dnw_inux工具

简单好用的烧写工具。

2016-08-05

DHT11温湿度传感器完整项目

DHT11数码管显示实现

2016-07-19

空空如也

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

TA关注的人

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