自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Any problem in computer science can be solved with another layer of indirection

Any problem in computer science can be solved with another layer of indirection.  --by a predecessor of computer science.中文译文:“任何计算机科学领域的问题都能通过增加一个间接的应用层来解决。”(不要吐槽俺的翻译能力)        相信有几年编程经历的朋友都听说过

2015-03-25 15:57:58 1941

转载 git merge最简洁用法

一、开发分支(dev)上的代码达到上线的标准后,要合并到 master 分支git checkout devgit pullgit checkout mastergit merge devgit push -u origin master二、当master代码改动了,需要更新开发分支(dev)上的代码git checkout master git pull git checkout devgit merge master git push -u origin dev..

2021-09-03 17:56:31 287 1

转载 EEPROM和flash的区别

之前对各种存储器一直不太清楚,今天总结一下。存储器分为两大类:ram和rom。ram就不讲了,今天主要讨论rom。rom最初不能编程,出厂什么内容就永远什么内容,不灵活。后来出现了prom,可以自己写入一次,要是写错了,只能换一片,自认倒霉。人类文明不断进步,终于出现了可多次擦除写入的EPROM,每次擦除要把芯片拿到紫外线上照一下,想一下你往单片机上下了一个程序之后发现有个地方需要加一句话,为此你要把单片机放紫外灯下照半小时,然后才能再下一次,这么折腾一天也改不了几次。历史的车轮不断

2021-08-30 16:29:26 618

转载 Keil5.26、Keil5.27、Keil5.30下载地址

亲测有效,速速下载。mdk5.26下载地址http://www.keil.com/fid/vquv2wwtdy9j1w9xagw1om5eu9xbkks1e66vd1/files/eval/mdk526.exemdk5.27下载地址https://armkeil.blob.core.windows.net/eval/MDK527pre.EXEmdk5.30下载地址http://www.keil.com/fid/w91bz0w320dj1woabtw1mmudm1liu2p1z9yxd1/f

2021-08-16 10:35:25 3565 2

转载 Cortex-M的M0,M+,M3,M4,M7几种内核的简单区别

Cortex-M内核M0,M0+,M3,M4,M7之间的区别high-performance 高性能Mainstream 主流Ultra-low-power 低功耗知识补贴:之所以ARM公司会把Cortex-M分为这么多系列,主要是针对不同的应用领域;下面详细介绍:Cortex-M分为:M0,M0+,M3,M4,M7M0,M0+:基础版本,从图中可以看出来,有过于基础,所以生产不出来高性能的STM32的单片机;M3:目前最主流的设计内核选型,应用范围广;M4:比较着M3的内核

2021-07-22 11:01:19 4856

转载 C语言: 函数调用的开销

转载请注明来源 http://blog.csdn.net/imred/article/details/48865359 初学C语言的时候,我们有时会听说函数调用会有一定的开销,在进行了进一步学习之后,我们来看看原来听说的开销指的什么。 下面是两个非常简单的样例,就不作解释了: ...

2021-05-07 09:55:30 818 1

转载 C语言中volatile关键字的作用

一.前言1.编译器优化介绍:由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一定严格按照顺序执行,没有相关性的指令可以乱序执行,以充分利用CPU的指令流水线,提高执行速度。以上是硬件级别的优化。再看软件一级的优化:一种是在编写代码时由程序员优化,另一种是由编译器进行优化。编译器优化常用的方法有:将内存变量缓存到寄存器;调整指令顺序充分利用CPU指令流水线,常见的是重新排序读写指令。对常规内存进行优化的时候,

2021-04-16 09:35:41 177

转载 USB 2.0高速和全速的区别

USB 2.0接口标准的三种速度规格 High-speed 25Mbps~400Mbps(最大480Mbps) (高速)Full-speed 500Kbps~10Mbps(最大12Mbps) (全速)Low-speed 10Kbps~100Kbps(最大1.5Mbps)(低速)

2021-02-21 16:57:48 2131

转载 深入理解FIFO(包含有FIFO深度的解释)

FIFO:  一、先入先出队列(First Input First Output,FIFO)这是一种传统的按序执行方法,先进入的指令先完成并引退,跟着才执行第二条指令。  1.什么是FIFO?  FIFO是英文First In First Out 的缩写,是一种先进先出的数据缓存器,他与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据,顺序的读出数据,其数据地址由内部读写指针自动加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址。  2.什么

2021-02-02 14:28:18 3823

转载 C语言 共享库(动态库)制作

文章目录 共享库简介 共享库制作 代码实现 创建共享库 链接使用共享库 小结 共享库简介共享库的本质就是将多个目标文件打包成一个文件。链接共享库就是在可执行文件中调用共享库中函数的指令处插入一些指令,在运行时通过执行这些指令来完成加载共享库以及计算出所调函数入口地址的动作。使用共享库的可执行文件占用磁盘和内存相对于静态库要小。共享库中的代码一旦被修改,只要函数接口不变,无需重新链接。使用共享库的可执行文件在运行时,需要依赖共享库.

2021-01-28 15:38:20 395

转载 C语言 静态库制作(亲测可行)

文章目录 静态库简介 静态库制作 代码实现 创建静态库 链接使用静态库 静态库简介静态库的本质就是将多个目标文件打包成一个库文件。链接静态库就是将库中被调用代码复制到可执行文件中。使用了静态库的可执行文件占用磁盘空间和内容空间都比较大,静态库中代码被修改后,需重新生成库文件并需重新链接库文件。使用静态库的可执行文件无需依赖静态库,静态库即使被删除,也可照常运行。执行效率比动态库相对要高。静态库的文件形式为:lib<库名&gt.

2021-01-28 14:30:05 355 1

转载 Lua源码分析 - 基础篇 - Lua源码的结构和架构图(01)

目录一、Lua语言简介二、Lua架构图三、Lua源码结构很久很久没有写博客了,一直忙于工作和项目,最近依然想静下来阅读一些好的源码。自从读完了Nginx和Memcache的源码后,对服务器端的基础开源软件的实现原理有了一定的认识,接下来想看看Lua这门精巧的语言是如何实现的。一、Lua语言简介Lua是一门用C语言编写的脚本语言,一共1w多行代码,非常的轻巧,适合做web脚本、游戏脚本、物联网等场景下使用。Lua可以进行独立编程,但是大部分情况下是嵌入到大型语言里面,作为一个库,成

2021-01-27 19:04:54 722

转载 SPI协议、MCP2515裸机驱动详解----主流SPI总线接口原理

最近看到一个介绍SPI接口原理的帖子,看完觉得甚好。特来分析给大家一起学习。SPI概述Serial Peripheral interface 通用串行外围设备接口是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间。SPI特点采用主-从模.

2021-01-26 18:09:56 2112

原创 USB、UART、SPI等总线速率

USB总线 USB1.1:——-低速模式(low speed):1.5Mbps——-全速模式(full speed): 12MbpsUSB2.0:向下兼容。增加了高速模式,最大速率480Mbps。——-高速模式(high speed): 25~480MbpsUSB3.0:向下兼容。——-super speed :理论上最高达4.8Gbps,实际中,也就是high speed 的10倍左右。 UART RS232:传输速率一般不超过20Kbps,速率低,抗干扰能力差,RS-232..

2021-01-26 16:38:40 2543

转载 SPI最大传输速率

问题SPI作为master或slave时可以达到的最大传输速率是多少 ?I2C协议v2.1规定了100K,400K和3.4M三种速率(bps)。SPI是一种事实标准,由Motorola开发,并没有一个官方标准。已知的有的器件SPI已达到50Mbps。具体到产品中SPI的速率主要看主从器件SPI控制器的性能限制。答案SPI最大传输速率受以下几个条件影响:SPI的最大时钟频率 CPU处理SPI数据的能力 输出端驱动能力(PCB所允许的最大信号传输速率)SPI的...

2021-01-26 16:28:11 11905

转载 git merge最简洁用法

一、开发分支(dev)上的代码达到上线的标准后,要合并到 master 分支 git checkout dev git pull git checkout master git merge dev git push -u origin master 二、当master代码改动了,需要更新开发分支(dev)上的代码 git checkout master git pull git checkout dev ...

2020-12-16 15:48:02 169

转载 Uart接口的详细解释

我面试的时候一般喜欢问应聘者一个问题:UART与RS232/RS485的区别与联系?很多人对于这个问题答得都不是很好。还有些人压根就没有想过这个问题,一直认为他们是同一个东西,就是咱们俗称的串口。我刚入嵌入式的大门时,对这个问题也困惑过很久,后来终于弄明白了。跟大家一起分享一下吧。简单来说,区别在于UART是一种接口,而RS232/RS485是一种总线。UART这个接口,后面可以接TTL电平,这就是我们俗称的普通的串口。而UART如果接了RS232/RS485的转换芯片,那么后面的总线上..

2020-11-24 18:07:33 6911 1

转载 UBoot讲解和实践-------------讲解(二)

UBoot ARM移植之阶段二 理论篇stage2: 1.初始化本阶段要使用的硬件设备: 通常包括两方面: 1)初始化至少一个串口,以便和终端用户进行I/O输出信息。 2)初始化计时器等 2.检测系统的内存映射 内存映射就是指在整...

2020-04-09 18:15:51 264

转载 UBoot讲解和实践-----------讲解(一)

Boot Loader之ARM Uboot移植 阶段一 理论篇1.boot loader需要完成的任务: 1》设计程序的入口地址 2》建立异常中断处理向量 3》初始化CPU各种模式的堆栈和寄存器 4》初始化系统中要使用的各种片内外设备 5》初始...

2020-04-09 18:14:29 304

转载 JLink接口的SWD接法

下面为J-Link接口定义:仿真器端口 连接目标板 备注 1. VCC MCU电源VCC VCC 2. VCC MCU电源VCC VCC 3. TRST TRST Test ReSeT/ pin 4. GND GND或悬空 5. TDI TDI Test Data In pin 6. GND...

2020-04-08 18:20:26 3705

转载 GCC全过程详解+剖析生成的.o文件

使用GCC编译一个.c文件影藏了哪些过程?GCC四步详解第一步:预处理(也叫预编译)gcc -E hello.c -o hello.i 或者 cpp hello.c > hello.i 【cpp是预编译器】 将所有#define删除,并且展开所有的宏定义 处理所有的条件预编译指令,如#if ...

2019-11-25 16:54:44 536

转载 八大排序(C语言)

原创 八大排序(C语言) ...

2019-11-07 15:48:24 306

转载 c++中的左移、右移运算

移位运算包含“逻辑移位”(logical shift)和“算术移位”(arithmetic shift)。逻辑移位:移出去的位丢弃,空缺位(vacant bit)用 0 填充。算术移位:移出去的位丢弃,空缺位(vacant bit)用“符号位”来填充,所以一般用在右移运算中。 c++中,整数分有符号数和无符号数两种,对于这两种数做左移、右移运算,稍有区别:1、如果是无符...

2019-09-20 11:08:17 586

转载 ubuntu下txt文件编码转换、查询(gbk/ISO-8859->utf-8)

在ubuntu下运行python程序,总是报错,说编码不对不是utf-8(貌似是因为汉字部分出问题了),搜集资料后完成了转换。1.文件编码查询$ file 199801.txt199801.txt: ISO-8859 text, with very long lines, with CRLF, LF line terminators2.完成转换$ sudo iconv -f ...

2019-08-01 18:45:46 873

转载 面向对象的23种设计模式

设计原则:高内聚低耦合,开闭原则。两大基础设计原则在说面向对象设计的六大原则之前,我们先来说下程序设计的原则:模块内高内聚,模块间低耦合。我们在面向对象时只需把类看成模块,那么就容易理解封装等了。说是七大原则,这里我先提出来一个:对扩展开放,对修改关闭。 为啥这么说,因为我们都知道软件是要改的。对扩展开放保证了可以增加功能,像泛型啦这些。对修改关闭保证了像前的兼容性,jdk7兼容jdk6这...

2019-07-19 10:37:22 1118

转载 Python--Matplotlib(基本用法)

版权声明:本...

2019-06-29 22:45:42 561

转载 IPC(进程间通信方式的介绍)

原 IPC(进程间通信方式的介绍) 2018年07月24日 14:44:50 CAFEBABE丶 阅读数:360 ...

2019-06-10 19:52:15 816

转载 linux基础——linux进程间通信(IPC)机制总结

原 linux基础——linux进程间通信(IPC)机制总结 2016年07月23日 21:33:12 yexz 阅读数:18224更多 ...

2019-06-10 19:33:50 269

转载 计算机中减法的实现原理

这本来就是大一的时候就开始学习的,但是之后一直没再接触。一接触但有概念而没有一个清晰的过程,所以再次缕清了后记录一下博客。本文重点阐明了计算机中减法运算的实现以及反码、补码的意义。对于加法来说,计算机很容易实现,举例:8 + 6 = 14;在计算机中,也就是0000 10000000 0110.------------------------0000 11100000 1110表示...

2019-05-05 17:20:53 1521

转载 浅谈数据结构和数据类型

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012540337/article/details/80499226最近总是被这两个概念混淆,抽出时间捋了捋他们的概念、关系。希望对大家有用。为什么要引入数据结构和数据类型的概念?计算机只识别0和1。现在人给计算机发送图片,语音,视频,二级制文件。该怎么办呢?其实简单一点的就是图片(01...

2019-03-05 19:02:42 239

转载 (推荐)为什么要走嵌入式?

我们从解读几个问题开始:1、各种软件技术之间是怎样的关系? 软件技术分为三个层次: 问题域:计算机图形学、音视频编码、信息安全、模式识别、信息检索、自然语言分析、人工智能、科学计算、专家系统等; 系统集成:C++和Java等面向对象语言、Python等解释型语言、LISP等函数式编程语言、GUI、中间件、编译器与解释器、虚拟机、数据库、网络服务、并行计算、集群、Peer...

2019-02-28 10:45:31 880

转载 三种sqrt函数实现

1:二分查找        思路:要实现一个sqrt函数,可以使用二分法,首先确定一个范围[begin, end],这个范围的中间数mid,看mid的平方是否等于x,如果相等,则返回mid,如果不等则缩小[begin,end]的范围,为原来的一半。这里的初始范围可以是[1, x],也可以是更精确一些的[1, (x/2) + 1]。(因 (x/2) + 1 的平方等于 x+1+(x^2/4),它...

2019-02-21 11:57:58 1681

转载 C语言注释规范

2-1:一般情况下,源程序有效注释量必须在20%以上。说明:注释的原则是有助于对程序的阅读理解,在该加的地方都加了,注释不宜太多也不能太少,注释语言必须准确、易懂、简洁。2-2:文件头部应进行注释,注释必须列出:版权说明、版本号、生成日期、作者、内容、功能、修改日志等。示例:下面这段头文件的头注释比较标准,当然,并不局限于此格式,但上述...

2019-01-21 16:52:52 5409

转载 博世BMI160六轴传感器I2C通信配置

版权声明:本文为博主原创文章,转载请注明原文出处。 https://blog.csdn.net/zzfenglin/article/details/52512871 &lt;/div&gt; &lt;link rel="stylesheet" href="https://csdnimg.cn/release/phoen...

2019-01-10 11:52:58 13558

转载 使用 qemu 搭建内核开发环境

本文主要介绍在 MacOS 上使用 qemu 搭建 Linux Kernel 的开发环境。(在开始之前需要注意的是,本文中的 Linux 开发环境是一个远程服务器,而 qemu 被安装在本地的 MacOS 上。通常并不需要这样折腾,直接将 qemu 安装在 Linux 中更加方便,而且 qemu 是可以 -nographic 无图形界面运行的。)1. 为什么需要 qemu?qemu 是一个...

2019-01-10 11:39:19 1023

转载 十大滤波算法程序大全

一、arduino版1、限幅滤波法(又称程序判断滤波法)2、中位值滤波法3、算术平均滤波法4、递推平均滤波法(又称滑动平均滤波法)5、中位值平均滤波法(又称防脉冲干扰平均滤波法)6、限幅平均滤波法7、一阶滞后滤波法8、加权递推平均滤波法9、消抖滤波法10、限幅消抖滤波法11、新增加 卡尔曼滤波(非扩展卡尔曼)程序默认对int类型数据进行滤波,如需要对其他类型进行滤波,...

2018-12-29 18:32:19 515

转载 C语言代码规范(编程规范)

首页 &gt; 编程笔记 &gt; C语言笔记阅读:7,165C语言代码规范(编程规范)C语言中文网推出辅导班啦,包括「C语言辅导班、C++辅导班、算法/数据结构辅导班」,全部都是一对一教学:一对一辅导 + 一对一答疑 + 布置作业 + 项目实践 + 永久学习。QQ在线,随时响应!什么叫规范?在C语言中不遵守编译器的规定,编译器在编译时就会报错,这个规定叫作规则。但是有一种规定,它...

2018-12-27 18:59:47 336

转载 【代码规范】google开源c\c++项目代码规范

版权声明:版权声明:本文为博主原创文章,未经博主允许不得转载;https://blog.csdn.net/csdn_baotai https://blog.csdn.net/csdn_baotai/article/details/80304636 &lt;/div&gt; &lt;link rel="styleshee...

2018-12-27 18:58:13 691

转载 简单常用滤波算法C语言实现

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiao2yizhizai/article/details/51026151 1.限幅滤波算法(程序判断滤波算法)方法解析:根据经验判断,确定两次采样允许的最大偏差值(设定为A),每次检测到新值时判断:如果本次值与上次值之差&lt;=A,则本次值有效,如果本次值与上次值只差&g...

2018-12-26 11:30:46 666

转载 卡尔曼滤波器推导与解析 - 案例与图片

卡尔曼滤波器推导与解析 - 案例与图片 - 李小铭 - 博客园 李小铭 随笔- 5&nbsp;文章- 2&nbsp;评论- 13&nbsp; &lt;/div&gt; &lt;div id="mylinks"&gt;博客园&nbsp;&nbsp;首页&nbsp;&nbsp;新随笔&

2018-12-26 11:21:33 1368

verilog_经验

非常好的verilog经验文档,很适合初学者。

2013-03-07

FPGA入门教程

非常详细的FPGA入门教程,很适合初学者。

2013-03-07

空空如也

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

TA关注的人

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