自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(142)
  • 资源 (3)
  • 收藏
  • 关注

原创 mBed Pelion学习笔记(四) Porting devices

一、Porting Device Management Client(一)、 Porting with PALPAL:平台抽象层(Platform Abstraction Layer),用于连接设备管理客户端和操作系统。它处于设备或者操作系统和设备管理客户端库之间,为设备管理客户端提供API。PAL让设备管理客户端变得更容易移植。(二)、Porting a new target fo...

2019-09-19 22:25:03 635

原创 mBed Pelion学习笔记(三) Updating device firmware

一、Device Management Update client本节介绍如何通过Device Management Update client 来接收更新。为了设置设备上的客户端,我们需要准备好 固件镜像 和 引导程序,同时还需要一个独一无二的ID和证书。 固件镜像应该包括:操作系统、更新客户端、用户程序。 引导程序会读取更新客户端写在设备上的新的固件镜像,然后检查该镜像是否有错误。...

2019-09-19 22:24:18 504

原创 mBed Pelion学习笔记(二) Connecting devices

一、 Device Management connectivityDevice Management 提供受限IoT设备和企业级软件或Web应用间一种连接方案。 Device onboarding(下面翻译为“初始化”):设备第一次建立连接到我们的设备管理帐户 设备可以在生产阶段预分配到一个帐户;如果没有,会有一个注册ID,在Onboarding阶段将其和帐户绑定。二、 Estab...

2019-09-19 22:23:47 615

原创 mBed Pelion学习笔记(一)Welcome & Introduction

一、 简介Pelion Device Management 是一个与交互和管理连接设备等相关的服务。它包括以下功能: ①安全连接:通过它可以进行交互管理和IoT设备管理 ②端对端远程固件更新 解决方案 ③有清晰的工作流程和配置机制,能够简化我们的开发过程,能够让我们无缝过渡到部署(实际运用)。 ④有着灵活的配置机制。能够和任何出厂设置一起使用,为你的设备提供所需的信息去连接到 Devi...

2019-09-17 22:49:22 587

原创 《C专家编程》学习笔记

这不是Bug,而是语言特性。(手动斜眼) C中多行字符串可以自动合并为一个字符串,所以可以这么用: printf("This is ""a ""test."); 但这样,如果在初始化字符串数组时,如果忘记写逗号,也会被自动合并: char *strs[]={"one","two""three","four"}; 这段代码变成"one"、"twothree"、"four...

2019-05-21 12:50:44 245

原创 《C陷阱与缺陷》学习笔记

C编译器判断符号的方式是“贪心法”,即一直读入下一字符,看能否组成一个符号,直到不可能组成一个符号为止。 单引号括起的一个字符表示一个整数,双引号括起的一个字符代表一个指针。float *g(); g是一个函数,该函数的返回值类型为指向浮点数的指针。 float (*h)(); h是一个函数指针,指向返回值是浮点数的函数。 分析(*(void(*)())0)(); : void...

2019-05-12 21:27:28 539

原创 《Vim实用技巧》 学习笔记

第1章 Vim解决问题的方式A;<Esc>:在当前行行尾添加一个; A命令相当于$a。$命令让光标跳到行尾 . 可以重复上一个命令 普通模式下 f{char}:跳到当前行的该字符,按下 ; 跳到下一个 按下 , 反向查找。 普通模式下不同命令,重复和回退方式: 目的 操作 重复 回退 做出一个修改 {edit} . ...

2019-05-11 16:00:13 281

原创 《Linux 命令行与 shell 脚本编程大全(第三版)》学习笔记

第2章 走进shellsetterm命令:用于设置终端前背景色和背景色 选项 参数 作用 -background black、red、green、yellow、blue、magenta、cyan、white 将终端背景设置为指定颜色 -foreground black、red、green、yellow、blue、magenta、cyan、w...

2019-04-26 11:14:31 663

原创 shell脚本学习 (五)杂项

一、 getopts①简介C有getopt_long函数用于解析命令行参数,在shell里用的是getopts。 一般格式:getopts options variable getopts 一般是在循环中运行,每次执行循环,getopts 就检查下一个命令行参数,并判断它是否合法。即检查参数是否以 - 开头,后面跟一个包含在 options 中的字母。如果是,就把匹配的选项字母存在指定...

2019-03-02 21:58:49 324

原创 Python 零碎知识点

1. getoptpython中用于解析命令行参数的函数。 通过import getopt导入 调用:options,args=getopt.getopt(argv, shortopts, longopts = []) 返回:options,args 一般argv是命令行传入的参数。通过sys.argv获得(记得import sys)。一般写的是sys.argv[1:] (因为0是py...

2019-03-02 21:44:53 321

原创 CSS 学习笔记

CSS:Cascading Style Sheets,层叠样式表。 样式定义如何显示 HTML 元素,样式通常存储在样式表中。把样式添加到 HTML 4.0 中,是为了解决内容与表现分离的问题。 外部样式表可以极大提高工作效率,外部样式表通常存储在 CSS 文件中,多个样式定义可层叠为一。 样式表定义如何显示 HTML 元素,就像 HTML 3.2 的字体标签和颜色属性所起的作用那样。样式通...

2018-12-05 22:27:16 155

原创 中移动 NB-IoT (M5310-A)学习笔记

一. 来自“M5310-A硬件设计手册V1.5”DCE:Data Communication EquipmentDTE:Data Terminal Equipment 模块的三种工作模式:模式 描述 Active 模块处于活动状态;所有功能正常可用,可以进行数据发送和接收;模块在此模式下可切换到 Idle 模式或 PSM 模式。 Idle 模块处于浅睡眠状态,...

2018-10-31 16:18:04 26546 3

原创 HTML 语言学习

HTML 指的是超文本标记语言 (Hyper Text Markup Language) HTML 不是一种编程语言,而是一种标记语言 (markup language) 标记语言是一套标记标签 (markup tag),HTML 使用标记标签来描述网页。 HTML 标签是由尖括号包围的关键词,HTML 标签通常是成对出现的,比如 &lt;b&gt; 和 &lt;/b&gt;。...

2018-10-24 16:31:29 760

原创 《HTTP权威指南》 笔记

目录第1章 HTTP概述第2章 URL与资源第3章 HTTP报文第4章 连接管理第5章 Web服务器第6章 代理第7章 缓存第8章 集成点:网关、隧道及中继第9章 Web机器人第10章 HTTP-NG第11章 客户端识别与cookie机制第12章 基本认证机制第13章 摘要认证第14章 安全HTTP第15章 实体和编码第16章 国际化...

2018-10-09 19:03:40 1148

原创 《Effective C++》 个人笔记

注: ①因为本书就是提供一些C++编程的建议,可能会有很多诸如“要”、“一定”之类的词语。其实很多不这么做并不会出错,只是这样写出的代码可能存在一些后续扩展等等问题。 ②以为本人是菜鸡一个,第一遍读很多还是没读懂,所以笔记也有遗漏0. 导读默认构造函数,要不就没有参数,要不就是每个参数都有缺省值。 在声明类的时候用=,调用的是拷贝构造函数;而在其他时候调用=,调用的是被重载的=运算符。...

2018-10-07 22:58:53 273

转载 C中 mem系列函数

1. memset原型:void* memset(void *s,int c,size_t n) 功能:将s的前n个字节用c替换并返回s 注意:memset赋值不管你数组是什么类型的,它都是以字节为单位赋值的。即使是int型,4个字节,也是逐个字节赋值。2. memcpy 和 memmove原型: void *memcpy(void*dest, const void *src, s...

2018-09-24 22:21:54 6379

转载 RAID 分类

RAID是Redundant Array of Inexpensive Disk的缩写,意为廉价冗余磁盘阵列,是磁盘阵列在技术上实现的理论标准,其目的在于减少错误、提高存储系统的性能与可靠度。常用的等级有0、1、3、5、10级等。1. RAID0RAID0也就是常说的数据条带化(Data Stripping),数据被分散存放在阵列中的各个物理磁盘上,需要2块及以上的硬盘,成本低,性能和容量随...

2018-09-21 14:51:41 258

原创 电梯调度 / 磁盘调度算法

一. FCFS(First Come First Serve)假设当前磁道在某一位置,依次处理服务队列里的每一个磁道,这样做的优点是处理起来比较简单,但缺点是磁头移动的距离和平均移动距离会很大。 这种方法在请求较少的环境下,性能尚可接受,但是在请求较多的情况下,这种算法的性能就会严重下降,甚至恶化。 二. SSTF(Shortest Seek Time First)SSTF,最短寻...

2018-09-17 09:32:19 9232

转载 Linux 下动态链接库相关函数

前几天参加一个面试,遇到这么一个问题:如果两个驱动模块,其中一个模块要去调用另外一个模块中的一个函数,怎么做?当时我就懵逼了,完全没接触过,出来后师兄提醒,才了解到Linux 下有动态链接库加载这种东西。 一. 使用简介#include &lt;dlfcn.h&gt;1. dlopen用于打开一个动态链接库  原型:void * dlopen( const char * path...

2018-09-16 19:35:02 459

转载 C字符串相关函数

一. strcpy 功能:拷备字符串函数,将src所指向的字符串拷备到dest所指向的内存空间中。复制包含’\0’。st 原型:char *strcpy(char *destin, char *source);  函数内部实现:char * strcpy(char *dst,const char *src) {    assert(dst != NULL &amp;&amp; sr...

2018-09-14 08:08:52 277

原创 树、森林和二叉树的转换

一. 树转二叉树步骤: ①加线:在所有兄弟结点之间加一条连线。②去线:树中的每个结点,只保留它与第一个孩子结点的连线,删除它与其它孩子结点之间的连线。③层次调整:以树的根节点为轴心,将整棵树顺时针旋转一定角度,使之结构层次分明。(注意第一个孩子是结点的左孩子,兄弟转换过来的孩子是结点的右孩子) 例子:①原始树②加线③去线④调整  二. 森林转换为二叉树步骤: ①把每...

2018-09-12 23:00:01 10569

原创 mount / umount命令

一. mount命令 Linux mount命令是经常会使用到的命令,它用于挂载Linux系统外的文件。 mount [-hV] mount -a [-fFnrsvw] [-t vfstype] mount [-fnrsvw] [-o options [,...]] device | dir mount [-fnrsvw] [-t vfstype] [-o options] ...

2018-09-12 10:41:31 3894

原创 C/C++文件操作

一. fopen、fwrite、fread、fseek#include&lt;stdio.h&gt;1. fopen原型:FILE * fopen(const char * path,const char * mode); path是绝对路径,可以是绝对路径,也可以是相对路径。 Windows下绝对路径要这么写:"C:\\test\\test" mode有以下几种选择:r...

2018-09-11 11:21:22 927

原创 iptables:防火墙

一. 使用说明iptables命令是Linux上常用的防火墙软件,是netfilter项目的一部分。可以直接配置,也可以通过许多前端和图形界面配置。 iptables(选项)(参数) 选项: -t&lt;表&gt;:指定要操纵的表; -A:向规则链中添加条目; -D:从规则链中删除条目; -i:向规则链中插入条目; -R:替换规则链中的条目; -L:显示规则链中已有的条目;...

2018-09-09 09:25:16 163

原创 DDoS 攻击

一. 简介DDoS(Distributed Denial of Service):分布式拒绝服务攻击,凡是能导致合法用户不能够访问正常网络服务的行为都算是拒绝服务攻击。 例如通过分散在各地的僵尸计算机进行攻击,让你的系统所提供的服务被阻断而无法顺利地为其他用户提供服务。 这种攻击方式不入侵你的系统,而是让你的系统无法正常提供服务。 这种攻击方式也是最难处理的,因为要么需要系统核心支持自动...

2018-09-08 22:37:18 951

转载 C++ 的函数调用约定

 函数调用约定,是指当一个函数被调用时,函数的参数会被传递给被调用的函数和返回值会被返回给调用函数。函数的调用约定就是描述参数是怎么传递和由谁平衡堆栈的,当然还有返回值。 在windows平台上的C++编程中经常会看到一些__stdcall, __cdecl, WINAPI, CALLBACK等等关键字在函数前面,在.NET中还有__clrcall, __thiscall等关键字,有时加...

2018-09-08 21:26:43 799

原创 sed、xargs 命令

这两天笔试做了一道题,要我找到当前目录下所有xml文件,并且把里面的hello替换为world。找到所有xml好办,find命令就好,但怎么替换里面的内容就一脸懵逼了。然后今天查了下,看到可以用sed或者xargs命令,所以就学了一下。一. sedsed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为...

2018-09-07 15:19:02 5621

原创 友元

一. 为什么要有友元?C++控制类对象私有部分的访问,通常是由公有类提供唯一的访问途径,但有时候这种限制台严格。因此C++提供了友元,通过让函数成为类的友元,可以赋予函数和类成员函数相同的访问权限。 友元有:友元函数、友元类、友元成员函数。 假设有一个时间类Time,要定义时间类的乘法。我们先想到的是乘法,可以在类中重载运算符*。这样的话:A=B*2.75; //相当于:A=...

2018-09-07 09:53:45 101

原创 《C和指针》 旧笔记迁移

目录No.01 快速上手No.02 基本概念No.03 数据No.04 语句No.05 操作符和表达式No.06 指针No.07 函数No.08 数组No.09 字符串、字符和字节No.10 结构和联合No.11 动态内存分配No.14 预处理器 No.01 快速上手#if 0 statements #endif 这段语句有删除中间...

2018-09-06 18:24:54 471

原创 Linux下关机重启命令:shutdown、init、halt、reboot

一. shutdownshutdown [-t seconds] [-rkhncfF] time [message] -t seconds : 设定在几秒钟之后进行关机程序 -k : 并不会真的关机,只是将警告讯息传送给所有只用者 -r : 重启 -h : 关机后停机(真正的关机) -n : 不采用正常程序来关机,用强迫的方式杀掉所有执行中的程序后自行关机 -c : 取消目前已经进...

2018-09-05 23:04:43 5410

转载 Linux 帮助命令:man

man相当于Linux中的帮助手册,分为几个章节,可以查询命令、函数等帮助文档。 man章节号和对应的内容 章节编号 章节名称 章节主要内容 1 General Commands 用户在shell中可以操作的指令或者可执行文档 2 Syst...

2018-09-05 20:39:38 152

转载 SPI、I2C 、UART 简单知识

一. SPISPI:高速同步串行口。3~4线接口,收发独立、可同步进行  SPI是串行外设接口(Serial Peripheral Interface)的缩写。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线。 SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。也是所有基于SPI...

2018-09-05 15:06:24 303

原创 Linux的内存分布 和mmap、brk函数

一. 内存分布代码段(.text):代码,全局常量(const),只读变量和字符串常量(有可能在代码段,一般被放在只读数据".rodata"段,还有可能就在“.data”段)。 数据段(.data):全局变量(初始化以及未初始化的)、静态变量(全局的和局部的、初始化的以及未初始化的)。数据段包括初始化的数据和未初始化的数据(BSS)两部分。BSS段存放的是未初始化的全局变量和静态变量。BSS...

2018-09-04 09:39:43 721

原创 Linux 系统调用

一. 原理简介系统调用,顾名思义,说的是操作系统提供给用户程序调用的一组“特殊”接口。用户程序可以通过这组“特殊”接口来获得操作系统内核提供的服务,比如用户可以通过文件系统相关的调用请求系统打开文件、关闭文件或读写文件,可以通过时钟相关的系统调用获得系统时间或设置定时器等。 从逻辑上来说,系统调用可被看成是一个内核与用户空间程序交互的接口——它好比一个中间人,把用户进程的请求传达给内核,待内...

2018-09-04 09:00:50 280

转载 Linux的用户空间与内核空间

一. 简介Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间。两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数据可能不在内存中。用户空间的内存映射采用段页式,而内核空间有自己的规则;本文旨在探讨内核空间的地址映射。 os分配给每个进程一个独立的、连续的、虚拟的地址内存空间,该大小一般是4G(3...

2018-09-03 10:51:23 38556 6

原创 malloc、calloc、free和new、delete和memset、memcpy

一. malloc、calloc、freemalloc原型:void* malloc(unsigned int size) calloc原型:void* calloc(size_t numElements, size_t sizeOfElement) 两个函数返回值均为系统分配的地址,失败返回NULL malloc的参数size是需要内存空间的长度:char* p;p=(cha...

2018-09-03 10:10:01 1170

转载 C++运算符优先级

转自:C++运算符优先级

2018-09-01 22:54:12 115

原创 回溯法

一. 简介回溯法(探索与回溯法)是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。 若用回溯法求问题的所有解时,要回溯到根,且根结点的所有可行的子树都要已被搜索遍才结束。而若使用回溯法求任一个解时,只要搜索到问题的一个解就可以结...

2018-09-01 08:25:41 117

原创 《Flask Web开发》 个人笔记

 目录第01章 安装第02章 程序的基本结构第03章 模版第04章 Web表单第05章 数据库第06章 电子邮件第07章 大型程序的结构第08章 用户认证第09章 用户角色第15章 测试第16章 性能本来以为Flask是用于后端,所以学会Python什么的就好。结果学起来才发现好多前端的东西和Flask 关系还是挺大的,例如HTML、例如HTTP...

2018-08-31 22:56:09 6143

原创 Linux下使用gdb调试

在Ubuntu下,直接用命令:apt-get install build-essential 即可安装gdb。build-essential包含gcc和gdb等工具,是C语言的开发包 GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形...

2018-08-30 21:49:16 640

设计模式(机械工业出版社)

【清晰度尚可,自己添加了PDF目录,方便查看】这本书结合设计实作例从面向对象的设计中精选出23个设计模式,总结了面向对象设计中最有价值的经验,并且用简洁可复用的形式表达出来。书中分类描述了一组设计良好、表达清楚的软件设计模式,这些模式在实用环境下特别有用。此书适合大学计算机专业的学生、研究生及相关人员参考。

2018-10-13

费诺编码解码程序

1.本程序基于C语言开发,开发环境为Linux 2.编译后的程序可以通过如下格式传参使用: fano -模式 -输入文件 -输出文件 模式可选:c代表着编码 u代表着解码 输入文件尽量输入绝对路径 输出文件即我们要输出的文件名 例:fano c /home/linar/fano_code/input.txt output 3.本程序文本输入仅支持128个ASCⅡ码

2018-05-06

空空如也

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

TA关注的人

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