blogernice

导航

统计

12 2019 档案

grep 命令详解及相关事例
摘要:一.匹配字符 . 匹配任意单个字符 [ ] 匹配指定范围内的任意字符 [^] 匹配飞指定范围内的任意字符 [:alpha:] 字母字符 [:low 一.匹配字符 . 匹配任意单个字符 [ ] 匹配指定范围内的任意字符 [^] 匹配飞指定范围内的任意字符 [:alpha:] 字母字符 [:lower: 阅读全文

posted @ 2019-12-20 09:13 blogernice 编辑

Linux grep/egrep命令详解
摘要:grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来 grep搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。 grep的规则表达式(正则一定要转义) grep常见命令参数 Linux egrep命令详解 常用的命令展示 查找指定关键 阅读全文

posted @ 2019-12-20 09:12 blogernice 编辑

深入了解DSP与ARM的区别与联系
摘要:DSP: DSP(digital singnal processor)是一种独特的微处理器,有自己的完整指令系统,是以数字信号来处理大量信息的器件。一个数字信号处理器在一块不大的芯片内包括有控制单元、运算单元、各种寄存器以及一定数量的存储单元等等,在其外围还可以连接若干存储器,并可以与一定数量的外部 阅读全文

posted @ 2019-12-17 21:08 blogernice 编辑

时间时区概念及常用时间函数
摘要:时区,为了克服时间上的混乱,1884年在华盛顿召开的一次国际经度会议(又称国际子午线会议 )上,规定将全球划分为24个时区(东、西各12个时区)。规定英国(格林尼治天文台旧址)为中时区(零时区)、东1-12区,西1-12区,每个时区横跨经度15度,时间正好是1小时。最后的东、西第12区各跨经度7.5 阅读全文

posted @ 2019-12-10 09:05 blogernice 编辑

GNSS原理及技术(一)——GNSS现状与发展
摘要:GNSS的概念 GNSS的全称是全球导航卫星系统(Global Navigation Satellite System),它是泛指所有的卫星导航系统,包括全球的、区域的和增强的,如美国的GPS、俄罗斯的Glonass、欧洲的Galileo、中国的北斗卫星导航系统,以及相关的增强系统,如美国的WAAS 阅读全文

posted @ 2019-12-07 11:48 blogernice 编辑

STM32 RTC上的唤醒和闹钟
摘要:RTC很简单只要给备用电,RTC就会不停,可以进行设置和读时间。同时在RTC上也涉及了闹钟(EXTI_17:RTC_FLAG_ALRAF,相当于RTC的定时器,闹钟到了之后进行异步操作)和唤醒中断(低功耗模式下的操作EXTI_22:RTC_IT_WUT)。 如果PA0上有开关信号唤醒EXIT_Lin 阅读全文

posted @ 2019-12-06 15:18 blogernice 编辑

Makefile学习4—打造更专业的编译环境-huge项目
摘要:先手工创建几个文件目录: 接下来先创建code/foo/src目录下的Makefile: 具体和complicated项目的差别可以看书或者上篇随笔。 第一个提示没有那个目录,可以在include的时候加上'-'就可以忽略这个,因为这里对我们的项目没有实质影响,但是新手对于报错或者警告总是不放心,故 阅读全文

posted @ 2019-12-05 20:09 blogernice 编辑

Makefile学习3--—使用依赖关系文件
摘要:Makefile中存在一个include指令,它的作用如同C语言中的#include预处理指令。在Makefile中,可以通过使用include指令将自动生成的依赖关系文件包含进来,从而使得依赖关系文件中的内容成为Makefile的一部分。 在此之前,先介绍一下Makefile中的include的用 阅读全文

posted @ 2019-12-05 20:07 blogernice 编辑

Makefile学习之路2-----变量
摘要:变量的类别有递归扩展变量和简单扩展变量。只用一个“=”符号定义的变量被称为递归扩展变量(recursively expanded variable)。通过下面例子观察递归扩展变量的特点。 从结果来看,递归扩展变量的引用是递归的。 1 2 3 CFLAGS = $(include_dirs) -O i 阅读全文

posted @ 2019-12-05 20:06 blogernice 编辑

Makefile学习之路1—基础
摘要:无论是C、C++、还是pas,首先要把源文件编译成中间代码文件,在Windows下也就是 .obj 文件,UNIX下是 .o 文件,即 Object File,这个动作叫做编译(compile)。然后再把大量的Object File合成执行文件,这个动作叫作链接(link)。 链接时,主要是链接函数 阅读全文

posted @ 2019-12-05 20:03 blogernice 编辑

第19课——队列的特别实现
摘要:队列的优化中,重新实现的方式确实提高了顺序队列和链式队列的效率, 可是实现过程还是比较复杂 。 可是这也是没有办法的 , 直接复用链表虽然可以实现队列 ,但是效率却不够好呀! 是不是有即能复用之前的代码 , 又比较高效的队列实现算法呢? 算法框架: 特殊队列的创建: 入队列: 出队列: 头元素: 队 阅读全文

posted @ 2019-12-05 13:54 blogernice 编辑

第17课——队列的定义与实现
摘要:队列的定义 队列是一种特殊的线性表 队列仅在线性表的两端进行操作 队头(front):取出数据元素的一端 队尾(rear):插入数据元素的一端 队列不允许在中间部位进行操作! 队列的性质 队列的一些常用操作 创建队列 销毁队列 清空队列 进队列 出队列 获取队头元素 获取队列的长度 队列的顺序存储实 阅读全文

posted @ 2019-12-05 13:53 blogernice 编辑

第18课——队列的优化实现
摘要:之前实现的顺序栈和链式栈的进栈和出栈操作时间复杂度都是O(1)。而用同样的方式实现队列,进队和出队的复杂度总有一个是O(n) 。顺序队列的瓶颈 顺序队列 线性表的第一个元素作为队头 线性表的最后一个元素作为队尾 入队的新元素是在线性表的最后,时间复杂度为O(1); 出队时需要将后续的所有元素向前移动 阅读全文

posted @ 2019-12-05 13:53 blogernice 编辑

第15课——递归的应用实战一汉诺塔、全排列等
摘要:递归的数学思想 递归的数学表示 斐波拉契数列递归解法 运行结果: strlen 递归解法 运行结果: 汉诺塔递归解法 递归当然只能以递归的思路理解,把它展开纯属自讨苦吃。 递归思路,说白了是如下三步: 1、对于问题N,如果N-1已经解决了,那么N是否很容易解决。 2、一步步递推下去,终究会有个“包工 阅读全文

posted @ 2019-12-05 13:52 blogernice 编辑

第16课——递归的应用实战二—八皇后问题
摘要:递归与回溯 8皇后问题: 在一个8*8棋盘上,有8个皇后,每个皇后占一格;要求两个皇后不能处在同一行、同一列或同一对角线上。 找放置的位置,方向很重要,当从第一行开始,放置皇后的位置后,第二行放置时要考虑上一行的放置。 即3个方向为(-1,-1),(-1, 0),(-1,1) 8皇后共有92种。 用 阅读全文

posted @ 2019-12-05 13:52 blogernice 编辑

第13课——栈的应用实战
摘要:几乎所有的编译器都具有检测括号是否匹配的能力 编译器中的括号检测能力是如何实现的呢? 匹配函数: 代码复用链式栈的,main函数更改如下: 实例二:用栈实现计算: 后缀表达式: 中缀或后缀? 中缀表达式符合人类的阅读和思维习惯; 后缀表达式符合计算机的“运算习惯”; 如何将中缀表达式转化为后缀表达式 阅读全文

posted @ 2019-12-05 13:51 blogernice 编辑

第14课——栈与递归
摘要:C 语言中常说“ 局部变量在栈上分配空间”, 那么这个地方的“ 栈” 和我们之前学习的栈数据结构有关系吗? 函数调用时的栈 活动记录 活动记录是函数调用时一系列相关信息的记录 函数调用过程 程序中的栈 程序中的栈 递归调用中的栈变化 退栈 小结 阅读全文

posted @ 2019-12-05 13:51 blogernice 编辑

第12课——栈的定义及实现
摘要:栈的定义 * 栈仅能在线性表的一端进行操作 栈顶(Top) : 允许操作的一端 栈底(Bottom) :不允许操作的一端 栈的性质 栈的操作 # 栈的一些常用操作 * 创建栈 * 销毁栈* 清空栈* 进栈* 出栈* 获取栈顶元素* 获取栈的大小 栈的顺序存储实现 下面的顺序栈是不能支持结构体的! 现 阅读全文

posted @ 2019-12-05 13:50 blogernice 编辑

第11课——双向链表
摘要:单链表的局限:  单链表的结点都只有一个指向下一个结点的指针 单链表的数据元素无法直接访问其前驱元素 逆序访问单链表中的元素是极其耗时的操作!!! 单链表的改进  双向链表的定义 在单链表的结点中增加一个指向其前驱的pre指针如下图所示: 循环链表的操作  双向链表的新操作  获取当前游标 阅读全文

posted @ 2019-12-05 13:49 blogernice 编辑

第九课 — 静态链表
摘要:单链表完美解决了顺序表的问题 ! 还有其它改进顺序表的方法吗? 牛人小C C 。 出场 。。。顺序表有优势 , 单链表也同样有缺点 单链表的相对劣势 单链表的实现严重依赖指针 ! 数据元素中必须包含一个额外的指针域 ! 没有指针的程序设计语言无法实现! 顺序表的改进 静态链表的逻辑结构 静态链表相关 阅读全文

posted @ 2019-12-05 13:48 blogernice 编辑

第十课 — 循环链表,约瑟夫环问题的解决
摘要:单链表的局限 有些线性关系是循环的,即没有队尾元素 一年12个月,是重复的,12月过了又要回到1月,对于这样的线性元素规律,前人给我指明了一条更好的道路:循环链表。 循环链表拥有单链表的所有操作  创建链表 销毁链表 获取链表长度 清空链表 获取第pos个元素操作 插入元素到位置pos 阅读全文

posted @ 2019-12-05 13:48 blogernice 编辑

第八课 — 线性表的链式存储结构
摘要:上节课学了线性表的顺序存储结构,可是顺序表的最大问题是插入和删除都需要移动大量的元素! 如何解决呢? 讨论: 这就是我们链式存储结构的思想。 链式存储定义:为了表示每个数据元素与其直接后继元素之间的逻辑关系 , 每个元素除了存储本身的信息外 , 还需要存储指示其直接后继的信息。 链式存储逻辑结构:n 阅读全文

posted @ 2019-12-05 13:47 blogernice 编辑

第五、六课 — 线性表本质及相关操作
摘要:此图为线性表 A:友谊是平等的。不能用线性表表示。 B:一个上级可以管多个下级。不能用线性表表示。 C:一个人可以占多个位置(帮人占座),但帮占的位置不满足线性表表示关系。 D:最前面只有一个后驱,最后面只有一个前驱,数据有限,中间的有一个前驱和一个后驱,能用线性表表示。 小结 阅读全文

posted @ 2019-12-05 13:46 blogernice 编辑

第七课 — 线性表的顺序存储结构
摘要:线性表的顺序存储结构(重点) 顺序存储的定义:线性表的顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表的数据元素。 首先创建一个.h文件,把所有的函数的api函数写出来。 具体如下:首先创建线性表,销毁线性表,清除线性表,线性表的深度,线性表的容量,线性表的插入,获取线性表的某一个数,删除 阅读全文

posted @ 2019-12-05 13:46 blogernice 编辑

第四课 — 审判程序的灵魂
摘要:算法效率的度量 * 事后统计法 比较不同算法对同一组输入数据的运行处理时间 * 缺陷 为了获得不同算法的运行时间必须编写相应程序 运行时间严重依赖硬件以及运行时的环境因素 算法的测试数据的选取相当困难 事后统计法虽然直观 , 但是实施困难且缺陷多 ,一般不予考虑* 事前分析估算 依据统计的方法对算法 阅读全文

posted @ 2019-12-05 13:45 blogernice 编辑

第二课:什么是数据结构的数据
摘要:数据结构起源 ~ 计算机从解决数值计算问题到解决生活中的问题~ 现实生活中的问题涉及不同个体间的复杂联系~ 需要在计算机程序中描述生活中个体间的联系 数据结构主要研究非数值计算程序问题中的操作对象以及它们之间的关系 关键概念数据 – 程序的操作对象 , 用于描述客观事物数据的特点 : 可以输入到计算 阅读全文

posted @ 2019-12-05 13:44 blogernice 编辑

第三课 - 程序的灵魂,算法
摘要:程序是否越短越好? 是否别人看不懂就证明自己很厉害? 程序效率越高越好,并不是越短越好。在某些场合下,我们需要写出别人看不懂的算法最好,但是在一个团队开发中,算法可读性应该尽可能高。 数据结构与算法 算法的定义: 算法的特性: 算法设计的准则: 阅读全文

posted @ 2019-12-05 13:44 blogernice 编辑

第一课——进阶
摘要:理解程序的本质 程序是为了实际的问题而存在从本质上而言,程序是解决问题的步骤描述 一小步的进阶 首先理解实际问题!  确认问题类型– 如:数值计算,求最小值个数 确认求解的步骤– 如:打开文件,读数据,关闭文件,计算和问题:如何判断求解步骤的好坏,如下列所示: 运行结果如图: 从结果看出,三个函 阅读全文

posted @ 2019-12-05 13:43 blogernice 编辑

FreeRTOS — 事件标志组
摘要:前面的章节我们已经讲解了任务管理和时间管理,从这节开始讲解任务间的通信和同步机制。首先讲解任务间的通信和同步机制之一,事件标志组。 1 、 事 件 标 志 组 1.1 为什么要使用事件标志 事件标志组是实现多任务同步的有效机制之一。也许有不理解的初学者会问采用事件标志组多麻烦,搞个全局变量不是更简单 阅读全文

posted @ 2019-12-05 11:55 blogernice 编辑

FreeRTOS — 互斥信号量
摘要:1 、互 斥 信 号 量 1.1 互斥信号量的概念及其作用 互斥信号量的主要作用是对资源实现互斥访问,使用二值信号量也可以实现互斥访问的功能,不过互斥信号量与二值信号量有区别。下面我们先举一个通过二值信号量实现资源独享,即互斥访问的例子,让大家有一个形象的认识,进而引出要讲解的互斥信号量。 运行条件 阅读全文

posted @ 2019-12-05 11:52 blogernice 编辑

FreeRTOS — 任务计数信号量,任务二值信号量,任务事件标志组,任务消息邮箱
摘要:FreeRTOS 计数信号量的另一种实现方式 基于任务通知(Task Notifications)的计数信号量,这里我们将这种方式实现的计数信号量称之为任务计数信号量。任务计数信号量效率更高,需要的 RAM 空间更小。当然,缺点也是有的,它没有前面介绍的计数信号量实现的功能全面。 1、任务通知(Ta 阅读全文

posted @ 2019-12-05 11:51 blogernice 编辑

FreeRTOS — 动态内存管理
摘要:本章节为大家讲解 FreeRTOS 动态内存管理,动态内存管理是 FreeRTOS 非常重要的一项功能,前面章节讲解的任务创建、信号量、消息队列、事件标志组、互斥信号量、软件定时器组等需要的 RAM 空间都是通过动态内存管理从 FreeRTOSConfig.h 文件定义的 heap 空间中申请的。 阅读全文

posted @ 2019-12-05 11:50 blogernice 编辑

FreeRTOS — 低功耗之睡眠模式,停机模式,待机模式
摘要:低功耗是 MCU 的一项重要的指标,比如某些可穿戴的设备,其携带的电量有限,如果整个电路消耗的电量特别大的话,就会经常出现电量不足的情况,影响用户体验。 STM32F103 睡眠模式介绍 说明:在 FreeRTOS 系统上面实现睡眠方式仅需了解这里讲解的知识基本就够用了,更多睡眠方式的知识请看 ST 阅读全文

posted @ 2019-12-05 11:49 blogernice 编辑

FreeRTOS — 独立看门狗检测任务执行状态
摘要:通过前面的几个章节,我们基本已经完成了 FreeRTOS 所有功能的讲解,本章节为大家介绍一种使用独立看门狗监测任务执行状态的方法,借此为大家提供一种在软件或者硬件死机时,FreeRTOS 系统如何保证系统复位的思路。 什么是独立看门狗 假设有一只饥饿的狗正在看守一座房子,而有人要闯入。 如果这个强 阅读全文

posted @ 2019-12-05 11:49 blogernice 编辑

晶振工作原理及参数详解
摘要:晶振是石英晶体谐振器(quartz crystal oscillator)的简称,也称有源晶振,它能够产生中央处理器(CPU)执行指令所必须的时钟频率信号,CPU一切指令的执行都是建立在这个基础上的,时钟信号频率越高,通常CPU的运行速度也就越快。 只要是包含CPU的电子产品,都至少包含一个时钟源, 阅读全文

posted @ 2019-12-03 19:51 blogernice 编辑

电阻之上拉电阻与下拉电阻详解
摘要:上拉(Pull Up )或下拉(Pull Down)电阻(两者统称为“拉电阻”)最基本的作用是:将状态不确定的信号线通过一个电阻将其箝位至高电平(上拉)或低电平(下拉),无论它的具体用法如何,这个基本的作用都是相同的,只是在不同应用场合中会对电阻的阻值要求有所不同,从而也引出了诸多新的概念,本节我们 阅读全文

posted @ 2019-12-03 19:48 blogernice 编辑

三极管之开关电路详解
摘要:三极管不仅可以对模拟信号放大,也可作为控制开关使用,作为开关使用的三极管处于截止与饱和状态,其基本电路如下图所示: 其中,集电极电阻R1为上拉电阻,当三极管Q1截止时将输出电压上拉至电源VCC(高电平),可以理解为开集(OC)输出结构的上拉电阻,具体可参考文章《电阻(4)之上/下拉电阻》,基极串联电 阅读全文

posted @ 2019-12-03 19:47 blogernice 编辑

DSP基本体系结构和特点
摘要:一、数字信号处理的优越性 目前,数字信号处理(Digital Signal Processing,简称DSP)已经成为信号处理技术的主流。因为与早期的模拟信号相比,数字信号处理有着巨大的优势。早期的模拟信号处理主要通过运算放大电路进行不同的电阻组配实现算术运算,通过电阻、电容的组配实现滤波处理等,其 阅读全文

posted @ 2019-12-03 14:57 blogernice 编辑

点击右上角即可分享
微信分享提示