- 博客(15)
- 资源 (14)
- 收藏
- 关注
原创 嵌入式软件C语言常见面试题
1、float x与0值比较不可将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”此类形式.因为计算机在处理浮点数的时候是有误差的,所以判断两个浮点数是不是相同,是要判断是不是落在同一个区间的:const float EP = 0.000001;if ((x >= - EP) && (x <= EP) ){B;}else{...
2019-05-31 17:25:40 3115
原创 MySQL查询性能优化
1、为啥查询速度会变慢如果把查询看作是一个任务,那么它是由一序列子任务组成,每个子任务都会消耗一定的时间,这样需要优化查询,实际就是优化子任务:(1) 消除一些子任务;(2)减少子任务的执行次数;(3)让子任务运行得更快;通常来说,查询的生命周期大致可以按照顺序来看:从客户端,到服务器,然后再服务器上进行解析,生成执行计划,执行,并返回结果给客户端。其中"执行"可以认为是整个生命周期中最...
2019-05-26 19:06:31 458 1
原创 Python 的行为型设计模式(七) 观察者模式
1 责任链模式2 命令模式3 解释器模式4 迭代器模式5 中介者模式6 备忘录模式7 观察者模式8 状态模式9 策略模式10 模板方法模式11 访问者模式
2019-05-26 17:44:00 161
原创 Python的高并发技术
1、前言目前大多数编程语言都直接支持并发,而且其标准库通常还提供了一些封装程度较高的功能。并发可以用多种方式来实现,这些方式最重要的区别在于如何访问"共享数据":是通过"共享内存"等方式直接访问,还是通过"进程间通信"等方式访问。**基于线程的并发:**是指同一个系统进程里有各自独立的若干个线程,它们都在并发执行任务。这些线程一般会依序访问共享内存,以此实现数据共享。程序中,通常采用某种锁定机...
2019-05-25 23:31:00 2222
原创 建造者模式(未完待续)
1、原理建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。与工厂模式不同,建造者模式是在导向者的控制下一步一步构造产品的2、运用场合优点:(1) 客户端不必知道产品内部组成的细节,将产品本身与产品的创建过程解耦,使得相同的创建过程可以创建不同的产品对象。(2) 每一个具体建造者都...
2019-05-25 22:45:25 132
原创 粒子滤波算法
1、前言粒子滤波器是一新类型的非线性滤波器,已成为一个解决非线性滤波问题的重要工具,因为它能应用于很多领域,如信号处理、雷达和声音媒体的目标跟踪、计算机视觉、神经计算。令XnX_nXn表示所有的目标状态序列{xi}i=1n{\lbrace x_i\rbrace} _{i=1}^n{xi}i=1nYnY_nYn表示所有观测序列{yi}i=1n{\lbrace y_i\rbrace}...
2019-05-25 19:58:11 1792
原创 抽象工厂模式
1、应用场景一般适用于产品组合产品族变化不大的情况。优点:(1)封装了产品的创建,使得不需要知道具体是哪种产品,只需要知道是哪个工厂就行了。(2)可以支持不同类型的产品,使得模式灵活性更强。(3)可以非常方便的使用一族中间的不同类型的产品。缺点:(1)结构太过臃肿,如果产品类型比较多,或者产品族类比较多,就会非常难于管理。(2)每次如果添加一组产品,那么所有的工厂类都必须添加一个方...
2019-05-25 10:16:04 110
原创 单例模式
1、应用场景在应用这个模式时,单例对象的类必须保证只有一个实例存在,单例模式只允许创建一个对象,因此节省内存,加快对象访问速度,因此对象需要被公用的场合适合使用,如多个模块使用同一个数据源连接对象等等。如:(1)需要频繁实例化然后销毁的对;(2)创建对象时耗时过多或者耗资源过多,但又经常用到的对象;(3)有状态的工具类对象;(4)频繁访问数据库或文件的对象。以下都是单例模式的经典使用场...
2019-05-20 00:49:20 121
原创 观察者模式(C++与Python)
1、应用场景在一个对象的状态改变时更新另外一组对象,例如excel中一个折线图和一个数据表格,使用同一个模型的数据,无论何时更改了模型,都需要更新折线图数据表格。原理:(1)Subject类注册Observer(2)Subject类通知其他对象时,通过修改更新注册时添加对象的状态。(3)Observer直接获取Subject修改后的状态变量,即实现了该状态变量的输出。定义步骤:(1)...
2019-05-18 20:35:59 150
原创 FreeRTOS到内存管理机制
1、heap_1动态内存管理一旦申请相应内存后,是不允许释放的。2、heap_2利用最适应算法,支持内存释放。3、heap_3对编译器提供的malloc和free进行封装,保证任务安全。4、heap_4利用最适应算法,支持内存-碎片回收5、heap_5在heap_4上支持动态内存设置在不连续区域上。...
2019-05-13 12:31:09 633
原创 Lwip是如何进行内存管理的
1、前言因近日到一家公司面试,自诩读过lwip源码,被问到lwip是如何进行内存管理的,恍惚间只记得内存块,内存池的概念,但时隔多日,具体内容早已抛到九霄云外了,于是记下,以便加深记忆。2、背景在平时编程中,经常会需要进行动态内存申请的操作,创建一个临时数据区域,在程序某个阶段结束后,释放该区域。例如C语言中用malloc()函数申请内存,free()函数释放内存,C++中利用new在堆上...
2019-05-11 20:30:39 712
原创 BLE协议栈详解
1、目的因最近面试,总有人问到BLE协议栈,据此,记录学习BLE协议栈的过程。2 协议概述所谓协议,即将指定的字节按照一定的顺序排列起来,以便他人使用自己的设备时,能通过该协议同其他设备进行通信。协议一特点,就是有固定的帧格式,通过该格式发送,接收者通过解读帧格式,进而得到新息内容;3 BLE连接过程3.1 前言一般通信协议,一类通信是直接发生数据,当设备接送到数据时,直接对数据进行解...
2019-05-11 11:08:42 15134 5
原创 HTTP协议不同版本的区别
1、目的因笔者参加一公司的面试时,被问及此问题时,一脸懵圈而刻骨铭心,因此作一文为此记录下。2、 HTTP协议即超文本传输协议,是互联网常用的通信协议。属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。2.1、HTTP协议内容HTTP请求由三部分组成,分别是:(1)请求行:(2)消息报头;(3)请求正文。HTTP响应由四部分组成,分别是:(1)状...
2019-05-09 23:42:08 3354
原创 卡尔曼滤波器的证明
1、状态空间模型Xn+1=An+1,nXn+WnX_{n+1} = A{n+1},nX_n + W_{n}Xn+1=An+1,nXn+WnYn=BnXn+VnY_n = B_nX_n + V_nYn=BnXn+Vn该模型涉及的参数如下:(1)状态转移矩阵An+1,nA_{n+1,n}An+1,n,它是可逆的。(在线性代数中,给定一个n阶方阵A,若存在一n阶方阵B使得AB=B...
2019-05-03 00:07:53 3273
原创 Python实现自适应LMS滤波算法
# -*- coding: utf-8 -*-"""Created on Wed Mar 27 12:57:42 2019@author: Administrator""""""import numpy as npimport matplotlib.pyplot as pltimport mathfrom scipy.fftpack import fft,ifftdef L...
2019-05-02 22:54:55 11132 14
Python数据分析与挖掘实战.高清完整版PDF(加了详细的书签)
2017-11-01
Python数据分析与挖掘实战(带详细标签)
2017-10-21
智能控制.pdf 刘金琨
2017-07-30
[rar文件] STM32嵌入式系统开发实战指南-FreeRTOS与LwIP联合移植(高清电子书)第三部分
2015-10-01
STM32嵌入式系统开发实战指南 FreeRTOS与LwIP联合移植 [李志明等编著][机械工业出版社][2013.05][322页]
2015-10-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人