自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Yy

Write the code, Change the world.

  • 博客(151)
  • 资源 (10)
  • 收藏
  • 关注

原创 设备树配置与编译

编译所有配置的设备树make dtbs编译指定的.dts文件以编译arch/arm/boot/dts/100ask_imx6ull-14x14.dts文件为例,编译后dts文件会变为dtb文件,首先检查dts文件是否配置使能了。查看arch/arm/boot/dts/Makefile文件,要编译出100ask_imx6ull-14x14.dtb,需要使能CONFIG_SOC_IMX6ULL配置选项:查看顶层.config文件中配置选项是否使能:book@100ask:~

2022-05-22 20:15:17 1845

原创 Linux驱动:休眠与唤醒

当应用程序必须等待某个事件发生,比如必须等待按键被按下时,可以使用“休眠-唤醒”机制。1. 休眠-唤醒流程APP调用read等函数;APP进入内核态read函数,等待按键按下,开始休眠;当按下按键时,驱动程序的中断服务程序被调用,它会读取按键值并唤醒APP;驱动中read被唤醒,将按键值返回给应用层。应用层read函数返回2. 相关函数参考内核源码:include\linux\wait.h2.1 休眠函数函数说明wait_event_interruptible(

2022-05-22 14:29:19 1597

原创 上拉电阻和下拉电阻,推挽和开漏输出

上拉电阻 & 下拉电阻上拉就是将不确定的信号通过一个电阻钳位在高电平,电阻同时起限流作用。下拉同理,也是将不确定的信号通过一个电阻钳位在低电平。为什么需要上拉和下拉?以一个开关的例子来解说一下:原理图A没有接上拉电阻,原理图B接了上拉电阻。原理图A当开关SW1按下时,输入端口A是低电平,但当开关SW1没有按下时,输入端口A是什么电平呢?这个时候输入端口A相当于是悬空的,电平处于未知状态。原理图B,当开关SW5按下时,输入端B是低电平。当SW5没有按下时,输入端B被上拉成了高电平,不会存

2022-05-08 15:41:29 4227

原创 全局函数做友元函数

class Building{ //让全局的好基友函数变为友元函数;friend void goodGay(Building * building);public: Building() { this->m_sittingRoom = "客厅"; this->m_bedRoom = "卧室"; }public: string m_sittingRoom; private: string m_bedRoom;}; //全局函数;void goodGay.

2022-03-01 19:33:48 209

原创 类模板函数的类外实现

#include <iostream>#include <string>#include <vector>#include <fstream>using namespace std;template <typename T1, typename T2>class Person{public: Person(T1 name, T2 age); void showPerson(); T1 m_Name; T2 m_Age;.

2022-02-28 11:09:45 188

原创 虚析构和纯虚析构

为了解决在多态情况下,delete父类指针不会调用子类析构函数,导致子类堆区数据释放不了的问题。#include <iostream>#include <string>using namespace std; class Animal{public: Animal() { cout << "Animal中调用构造函数" << endl; } virtual void speak() = 0;

2022-02-17 11:33:41 351

原创 c++纯虚函数例子

#include <iostream>#include <string>#include <vector>#include <fstream>using namespace std;class AbstractBase{public: virtual void Boil() = 0; virtual void Brew() = 0; virtual void PourInCup() = 0; virtual void PutSome..

2022-02-17 10:38:12 422

原创 rpcgen使用

本文给出一个rpcgen自定义数据结构的使用例子。msg.x文件内容如下:/* msg.x: Remote msg printing protocol */struct request { int user; char command[32];};struct calendar { int Year; char Month; char Day; char Hour; char Min; char Sec;}; pr

2021-08-13 20:11:34 891

原创 WPA3

1.概述WPA3在WPA2的基础上,增强了个人和企业网络中的安全保护。WPA3包括下面几种认证方式:WPA3: Simultaneous Authentication of Equals (SAE).WPA3: 192‑bit cryptographic strength security protocol defined in Commercial National Security Algorithm (CNSA) Suite-B.Enhanced Open Feature: Opportun

2020-10-10 17:12:40 6314 1

原创 首部长度给出首部中32 bit字的数目。需要这个值是因为任选字段的长度是可变的。这个字段占4bit,因此TCP最多有60字节的首部。

关于《TCP/IP详解.卷一》第17章 TCP:传输控制协议,下面描述的理解首部长度给出首部中32 bit字的数目。需要这个值是因为任选字段的长度是可变的。这个字段占4bit,因此TCP最多有60字节的首部。首部长度字段占4bit,最大值为15,15*4=60,所以TCP最多有60字节首部。这里为什么乘以4呢,因为首部长度给出首部中32 bit字的数目,意思是这个字段里面的1表示32bi...

2020-04-22 14:12:47 1244 4

原创 Python在import Iterable时报DeprecationWarning

DeprecationWarning: Using or importing the ABCs from ‘collections’ instead of from ‘collections.abc’ is deprecated since Python 3.3, and in 3.9 it will stop working解决方法执行如下代码时报错from collections i...

2019-11-07 14:40:21 410

原创 local variable 'i' referenced before assignment

def createCounter(): i=0 def counter(): i += 1 return i return counter运行这段代码的时候会报local variable 'i' referenced before assignment的错误。原因分析:对于counter()函数,i是非全局的外部变量.当在count...

2019-06-07 07:55:49 14167 3

原创 base64编码解码

定义和原理定义和原理如下链接:https://zh.wikipedia.org/wiki/Base64example#include &lt;stdio.h&gt;#include &lt;stdlib.h&gt;#include &lt;string.h&gt;static const unsigned char base64_table[65] = "ABCDEFG...

2018-07-10 09:21:25 286

原创 使用openssl进行AES 128 CTR 加密、解密

代码示例#include &amp;amp;lt;stdlib.h&amp;amp;gt;#include &amp;amp;lt;stdio.h&amp;amp;gt;#include &amp;amp;lt;string.h&amp;amp;gt;#include &amp;amp;lt;openssl/evp.h&amp;amp;gt;void handleErrors(void){ ERR_print_error

2018-06-08 11:25:30 11364 2

原创 getaddrinfo example

函数详细说明详细说明exampleserver.c#include &lt;sys/types.h&gt;#include &lt;stdio.h&gt;#include &lt;stdlib.h&gt;#include &lt;unistd.h&gt;#include &lt;string.h&gt;#include &lt;sys/socket.h&gt;#incl...

2018-04-19 10:57:31 521

原创 gethostbyname函数说明

说明gethostbyname()函数说明——用域名或主机名获取IP地址,仅支持IPv4。包含头文件#include &lt;netdb.h&gt;#include &lt;sys/socket.h&gt;函数原型struct hostent *gethostbyname(const char *name);这个函数的传入值是域名或者主机名,例如"www.google....

2018-04-18 15:10:20 524

原创 Linux gettimeofday、timeradd、timercmp and example

gettimeofday/* 根据时域获取当前时间 */int gettimeofday(struct timeval *tv, struct timezone *tz);参数定义如下:struct timeval { time_t tv_sec; /* seconds */ suseconds_t tv_usec; /* microseco...

2018-04-17 10:07:53 3156

原创 pthread_cond_signal、pthread_cond_wait example

#include &lt;stdlib.h&gt;#include &lt;stdio.h&gt;#include &lt;string.h&gt;#include &lt;signal.h&gt;#include &lt;pthread.h&gt;#include &lt;errno.h&gt;/* compile with gcc -pthread pthread_cond.c ...

2018-04-12 17:34:31 353

原创 netlink example

参考文章netlink详解应用层程序// netlink_user.c#include &lt;stdio.h&gt;#include &lt;stdlib.h&gt;#include &lt;sys/socket.h&gt;#include &lt;sys/types.h&gt;#include &lt;string.h&gt;#include &lt;linux/n...

2018-04-10 19:45:45 961

原创 Linux加入多播组

多播数据报只应该由对它感兴趣的应用接收。 广播一般局限与局域网内使用,而多播既可以用于局域网,也可以用于广域网。多播地址多播地址需要对IPv4和IPv6分开讨论。 IPv4的D类地址(从224.0.0.0到239.255.255.255)是IPv4多播地址。其中低28位为group ID,整个32位为group address。 一些特殊的IPv4多播地址: 224.0.0.1...

2018-04-04 13:46:27 3255

原创 Linux C使结构体字节对齐的两种方法

未对齐时的结构体大小#include &lt;stdio.h&gt;#include &lt;stdint.h&gt;struct aa { uint8_t a; uint16_t b; uint8_t c;};int main(int argc, char **argv){ printf("struct size=%d\n", sizeof(st...

2018-04-04 10:39:31 6642

原创 windows radius server搭建(freeradius.net)

下载http://freeradius.net/Downloads.html 官方下载地址配置设置用户启动FreeRadius.net后,在图标上点击右键,弹出下面的窗口: 点击Edit Users,添加用户 设置client点击Edit Radius Client.config 添加client信息 总结配置完成后,点击Restart FreeRADIUS.net Service,新的配置

2017-12-19 10:44:19 7486 1

原创 shell中的数字和字符串比较

数值比较n1 -eq n2:相当于n1 == n2n1-ge n2:相当于n1 >= n2n1 -gt n2:相当于n1 > n2n1 -le n2:相当于n1 <= n2n1 -lt n2:相当于n1 < n2n1 -ne n2:相当于n1 != n2字符串比较str1 = str2:比较是否相等str1 != str2:不相等str1 < str2:str1小与str2,按字母在A

2017-11-30 16:51:27 1859

原创 python判断一个数是否是回数

回数是指从左向右读和从右向左读都是一样的数,例如12321,909。#!/usr/bin/env python# -*- coding: utf-8 -*-# 方法一def is_palindrome(n): s = str(n) l = len(s) i = 0 while i < l - 1 - i: if s[i] != s[l-1-i]:

2017-11-09 22:57:15 2367

原创 windows radius server搭建(TekRADIUS)

前言网上有很多关于搭建radius server的方法,比较流行的有: 1. 在Linux环境下使用freeRadius,官网http://freeradius.org/ 。 2. 在Windows server环境下使用系统自带的radius server,比如这篇文章http://service.tp-link.com.cn/detail_article_1113.html 。 3. 在W

2017-11-07 16:12:40 21374 20

转载 在windows下如何添加、删除和修改静态路由

1、添加一条路由表route add 192.168.100.0 mask 255.255.255.248 192.168.1.1 metric 3 if 2 添加一条路由记录,所有到192.168.100.0/24网段的数据包,都通过2号(网卡)接口走192.168.1.1的网关,优先级为3。route add -p 192.168.100.0 mask 255.255.255.248 192.1

2017-11-06 10:04:30 17188

原创 是时候学习python了

随着机器学习,数据分析的兴起,python在github上成为了第二受欢迎的语言。很久以前就听说python简单、优雅很适合新手入门和学习,更何况python功能如此强大。下面是我找到到两个比较好的学习资源,从现在开始我的python之旅吧。 https://www.zhihu.com/question/20702054 知乎上的建议和学习资源 https://www.liaoxuefeng.c

2017-11-03 22:37:02 283

原创 UNIX网络编程(unp)源码下载和编译

源代码下载地址http://www.unpbook.com/src.html 该连接为UNIX网络编程,卷一,第三版的源代码。编译源代码把下载好的代码,放到UNIX系统中。或者直接在你的UNIX系统中使用下面的命令下载:curl http://www.unpbook.com/unpv13e.tar.gz > /dev/zero下载完成后会看到文件unpv13e.tar.gz文件,使用下面的命令解

2017-11-02 10:49:06 2245 1

原创 第一章 设备驱动程序简介

通常,设备驱动程序可以当做是进入Linux内核世界的大门。设备驱动程序的作用设备驱动程序的作用在于提供机制,而不是提供策略。 不同的环境通常需要不同的方式来使用硬件,我们应该尽可能做到让驱动程序不带策略。 驱动程序主要还是考虑下面三个方面的因素:提供给用户尽量多的选项、编写驱动程序要占用的时间、尽量保持程序简单而不至于错误丛生。可装载模块Linux有一个很好的特性:可以在运行时扩展。这意味着当系

2017-11-01 11:11:12 446

原创 802.11常用术语

OUI(organizationally unique identifier):组织唯一标识符 EAP(Extensible Authentication Protocol):可扩展身份认证协议 EAPOL(Extensible Authentication Protocol over LAN):基于局域网的可扩展身份认证协议 WPA(WiFi Protected Access):Wi-Fi保

2017-10-31 15:45:05 726

转载 shell判断变量是否为空

shell编程中,对参数的错误检查项中,包含了变量是否赋值(即一个变量是否为空),判断变量为空方法如下:1.变量通过" "引号引起来[plain] view plain copy#!/bin/sh  para1=  if [ ! -n "$para1" ]; then    echo "IS NULL"  else  

2017-10-27 14:32:50 4023

原创 scp命令

命令基本格式scp [可选参数] file_source file_target从 本地 复制到 远程复制文件scp local_file remote_username@remote_ip:remote_folder 或者 scp local_file remote_username@remote_ip:remote_file 或者 scp local_file remote_ip:rem

2017-10-26 10:10:33 424

转载 patch -p0 和patch -p1的区别 patch 用法

创建补丁文件diff -Naur 旧的目录 新的目录 > patch文件或者diff -Naur 旧的文件 新的文件 > patch文件对于目录层数的一些限制在创建patch的时候文件夹的层数应当是一样的,比如--- old/modules/pcitableMon Sep 27 11:03:56 1999+++ new/modules/pcitableTue Dec 19 20:05:41 2

2017-10-24 17:23:12 5200 1

原创 apue I/O多路转接,select与poll

I/O多路转接select传向select的参数告诉内核:我们所关心的描述符。对于每个描述符,我们所关心的状态(是否读一个给定的描述符?是否写一个给定的描述符?是否关心一个描述符的异常状态?)。愿意等待多长时间(可以永远等待,等待一个固定量时间,或完全不等待)。从select返回时,内核告诉我们:已经准备好的描述符的数量。对于读、写或异常这三个状态中的每一个,哪些描述符已经准备好。#i

2017-10-24 09:37:01 586

原创 popen和pclose

我们经常会有这样的操作,创建一个连接到另一个程序的管道,然后读其输出端或向其输入端发送数据,为此标准I/O库提供了两个函数popen和pclose来简化这些步骤。 这两个函数实现的操作是:创建一个管道,fork一个子进程,关闭未使用的管道端,执行一个shell命令(popen);然后等待命令终止(pclose)。#include <stdio.h>/** * 函数popen先执行fork,然后

2017-10-21 09:54:56 339

原创 Linux日志系统解析

前言对于守护进程,因为它没有控制终端,所以不能往标准出错上面打印。 在很多工作站上,控制台设备运行一个窗口系统,我们不希望所有守护进程都写到控制台设备上。 我们也不希望每个守护进程都单独的写到一个文件里面。 对系统管理员来说,如果要去各个守护进程的文件中查看日志,将是一件很头疼的事情。 所以,我们需要集中的管理守护进程的出错信息。 因此Linux使用syslogd将所有的日志信息集中的管

2017-09-30 15:50:38 1300

原创 Eclipse Paho Java Client分析——整体架构分析

The Paho Java Client is an MQTT client library written in Java for developing applications that run on the JVM or other Java compatible platforms such as Android.

2017-03-14 15:08:21 4555 2

原创 Riak Search功能使用

要使用Riak的search功能需要很复杂的步骤。根据官方文档的描述,要使用search功能需要经过下面的步骤: 1. 创建一个自定义的schema。如果不创建,可以使用自定义的schema。官方推荐在实际产品中使用自定义的schema。 2. 创建一个index和某个schema关联。如果不指定特定的schema,则使用系统默认的sc

2017-02-16 11:38:16 1131

原创 《黑客与画家》读书笔记

贫富分化加剧不是坏事你经常听到有人批评某种政策会加剧贫富划分。隐藏的意思是,贫富分化的加剧一定是坏事,这好像已经成了公理。实际情况是在工业化的民主国家,这种观点更可能是错误的。在农奴和贵族组成的社会,收入差距的加大肯定是社会问题加剧的信号,收入更多的从农奴流向了贵族。但是,抢夺他人的财富已经不再是收入的唯一来源了。波音747飞机驾驶员的收入大概是商场收银员的40倍,但是前者不是贵族,后者也不是奴隶,

2017-02-01 16:58:35 462 1

原创 《Zero to One》

本书讲的是一场思维运动:质疑现有观念,从零开始重新审视自己所从事的业务。 1. 最反主流的行动不是抵制潮流,而是在潮流中不丢弃自己的独立思考。 2. 如果你想创造并获得持久的价值,不要跟风建立一个没有特色的企业。 3. 每个垄断企业都是靠解决一个独一无二的问题获得垄断地位;而企业失败的原因却相同:它们都无法逃脱竞争。 4. 竞争是一场高成本的买卖。竞争不能带来价值的提升,而是充满了破坏力。

2017-01-14 11:45:48 711

Cortex A8,wdt程序

Cortex A8,wdt程序,。免费下载,绝对好用。

2014-04-01

Cortex A8,RTC程序

Cortex A8,RTC程序,希望对你有帮助。

2014-04-01

Cortex A8,ADC转换程序

Cortex A8,ADC转换程序,代码完整,借鉴性强。

2014-04-01

Cortex A8裸机PWM程序

Cortex A8裸机PWM程序,代码详尽,简单明了。你一定喜欢。

2014-03-31

cortex-A8按键中断裸机程序

cortex-A8按键中断裸机程序,注释详尽,相信你会懂的。

2014-03-31

Cortex A-8点亮led程序

基于s5p100的led程序。代码简单明了非常好用。

2014-03-28

Android简单计算器实现

Android简单计算器实现,简单大方。绝对是你想要的。

2014-03-24

单片机程序150列

详细的单片机程序还带注释,从最简单的led到复杂的都有。

2013-07-07

msp430资料大集合

msp430资料大集合,包括了官方和非官方的资料,很全。希望大家能喜欢。

2012-08-01

夏宇闻-Verilog经典教程

Verilog经典教程,大家都喜欢的,你懂的。

2012-08-01

空空如也

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

TA关注的人

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