08 2017 档案

摘要:在正则表达式里面,我们使用元字符 [ 和 ] 来定义一个字符集合。[ 和 ]不匹配任何字符,他们只负责定义一个字符集合。 [0123456789]和 [0-9]等价 [^1]表示不匹配1,[^1-9]:表示不匹配1到9数字之间的任何一个包含1和9. 阅读全文
posted @ 2017-08-30 21:50 Crystal_Guang 阅读(369) 评论(0) 推荐(0) 编辑
摘要:在说低功耗之前,先要明白一个东西,那就是stm32中的事件和中断。 事件是中断的触发源,开放了对应的中断屏蔽位,则事件可以触发相应的中断。在STM32中,中断与事件不是等价的,一个中断肯定对应一个事件,但一个事件不一定对应一个中断。 当外部有信号输入时,如果通过了事件屏蔽寄存器,那么事件信号就进入脉 阅读全文
posted @ 2017-08-27 22:09 Crystal_Guang 阅读(17205) 评论(2) 推荐(1) 编辑
摘要:这个函数真的很强大,这篇随笔也将一直更新一些总结,直到涵盖大多数应用: eg1: 今天公司项目中从云端获取了一段字符串 "+CBC: 0,90,4090" 我想获取其中的数字0,90,4090.我们当然可以写一个函数,判断,并且逐一取值,然后再糅合成想要的数据,但是这样也真的太麻烦了,于是sscan 阅读全文
posted @ 2017-08-22 23:24 Crystal_Guang 阅读(1813) 评论(0) 推荐(0) 编辑
摘要:输出: 数组当做函数参数的时候,会退化成指针,但是只退化一次,int b[][3]作为参数会变成(*b)[3];b是一个指针,指向一个数组,数组含有3个int类型的元素。++b之后,注意我们b的类型,一旦移动一个步长,相当于移动3个int位置,所以++b之后,b指向的是a[1][0];然后b[1][ 阅读全文
posted @ 2017-08-20 20:42 Crystal_Guang 阅读(693) 评论(0) 推荐(0) 编辑
摘要:以下RTX教程转载自安富莱电子论坛: http://forum.armfly.com/forum.php?mod=viewthread&tid=16909&extra=page%3D1%26filter%3Dtypeid%26typeid%3D16 6.第6章 RTX 操作系统源码方式移植 7.RT 阅读全文
posted @ 2017-08-19 13:16 Crystal_Guang 阅读(1639) 评论(0) 推荐(0) 编辑
摘要:我们知道结构体内存对齐字节可以通过#pragma pack(n) 的方式来指定。 但是,有没有想过一个问题,某些时候我想4字节对齐,有些时候我又想1字节或者8字节对齐,那么怎么解决这个问题呢? 此时,#pragma pack(push) 和#pragma pack(pop) 以及#pragma pa 阅读全文
posted @ 2017-08-19 00:28 Crystal_Guang 阅读(35207) 评论(0) 推荐(10) 编辑
该文被密码保护。
posted @ 2017-08-12 23:13 Crystal_Guang 阅读(3) 评论(0) 推荐(0) 编辑
摘要:以下内容转载自安富莱电子: http://forum.armfly.com/forum.php STM32F103 待机模式介绍 本章节我们主要讲解待机模式,待机模式可实现系统的最低功耗。该模式是在 Cortex-M3 深睡眠模式时关闭电压调节器。整个 1.8V 供电区域被断电。 PLL、 HSI 阅读全文
posted @ 2017-08-12 23:03 Crystal_Guang 阅读(587) 评论(0) 推荐(0) 编辑
摘要:以下内容转载自安富莱电子: http://forum.armfly.com/forum.php STM32F103 停机模式介绍 本章节我们主要讲解停机模式,停机模式是在 Cortex™-M3 的深睡眠模式基础上结合了外设的时钟控制机制,在停止模式下电压调节器可运行在正常或低功耗模式。此时在 1.8 阅读全文
posted @ 2017-08-12 22:13 Crystal_Guang 阅读(930) 评论(0) 推荐(0) 编辑
摘要:低功耗是 MCU 的一项非常重要的指标,比如某些可穿戴的设备,其携带的电量有限,如果整个电路消耗的电量特别大的话,就会经常出现电量不足的情况,影响用户体验。 本章节为大家讲解 M3/4的低功耗方式之睡眠模式在 RTX 操作系统上面的实现方法(RTX 本身支持的 tickless 低功耗模式在第 24 阅读全文
posted @ 2017-08-12 21:40 Crystal_Guang 阅读(678) 评论(0) 推荐(0) 编辑
摘要:以下内容转载自安富莱电子: http://forum.armfly.com/forum.php 本章教程为大家将介绍 RTX 操作系统源码方式移植,移植工作比较简单,只需要用户添加需要的源码文件即可,不需要做任何的底层工作,也不需要用户做任何修改。 源码方式移植 RTX 系统 准备好工程模板后,就可 阅读全文
posted @ 2017-08-12 21:26 Crystal_Guang 阅读(1549) 评论(0) 推荐(0) 编辑
摘要:以下内容转载自安富莱电子: http://forum.armfly.com/forum.php 本章节为大家讲解如何采用 SVC 中断方式调用用户函数。 当用户将 RTX 任务设置为工作在非特权级模式时,任务中是不允许访问特权级寄存器的,这个时候使用 SVC 中断,此问题就迎刃而解了。 SVC 功能 阅读全文
posted @ 2017-08-12 21:09 Crystal_Guang 阅读(5118) 评论(0) 推荐(0) 编辑
摘要:以下内容转载自安富莱电子: http://forum.armfly.com/forum.php 内存管理介绍在 ANSI C 中,可以用 malloc()和 free()2 个函数动态的分配内存和释放内存,但是,在嵌入式实时操作系统中,调用 malloc()和 free()却是危险的,因为多次调用这 阅读全文
posted @ 2017-08-11 21:49 Crystal_Guang 阅读(2257) 评论(0) 推荐(0) 编辑
摘要:以下内容转载自安富莱电子: http://forum.armfly.com/forum.php 本章节为大家讲解 RTX 支持的定时器组,或者叫软件定时器,或者叫用户定时器均可。软件定时器的功能比较简单,也容易掌握。 被称为定时器组是因为用户可以创建多个定时器,创建的个数是可配置的。 定时器组介绍R 阅读全文
posted @ 2017-08-11 21:16 Crystal_Guang 阅读(1495) 评论(0) 推荐(0) 编辑
摘要:以下内容转载自安富莱电子: http://forum.armfly.com/forum.php 前面几个章节主要给大家讲解了任务间的同步和资源共享机制,本章节为大家讲解任务间的通信机制消息邮箱,RTX 的消息邮箱其实就是消息队列,注意和 uCOS-II 中的消息邮箱区分开,uCOS-II 的消息邮箱 阅读全文
posted @ 2017-08-11 16:59 Crystal_Guang 阅读(2782) 评论(0) 推荐(1) 编辑
摘要:以下内容转载自安富莱电子: http://forum.armfly.com/forum.php 本章节开始讲解 RTX 的另一个重要的资源共享机制 互斥信号量(Mutex,即 Mutual Exclusion的缩写)。 注意,建议初学者学习完上个章节的信号量后再学习本章节的互斥信号量。 一定要多思考 阅读全文
posted @ 2017-08-11 10:27 Crystal_Guang 阅读(4749) 评论(0) 推荐(0) 编辑
摘要:eg1: 输出: int四字节,char一字节。注意步长。 有了上面的铺垫,我们来看下一个,这是一个面试题: 找出下面代码的bug: 当然,很明显的是char * 和 int *的类型不兼容,虽然C语言中的char就是int的子集,但是在指针操作的时候,类型所占用字节是极其重要的。 不过,这并不代表 阅读全文
posted @ 2017-08-10 21:48 Crystal_Guang 阅读(875) 评论(0) 推荐(0) 编辑
摘要:以下内容转载自安富莱电子: http://forum.armfly.com/forum.php 本章节开始讲解 RTX 的另一个重要的任务间的同步和资源共享机制,信号量。 信号量有3种用途: 1) 表达事件的发生次数或者已发生事件的数量。 2) 表达资源可用性,例如有一台打印机,信号量值为1表示打印 阅读全文
posted @ 2017-08-10 18:07 Crystal_Guang 阅读(2199) 评论(0) 推荐(0) 编辑
摘要:以下内容转载自安富莱电子: http://forum.armfly.com/forum.php 前面的章节我们已经讲解了任务管理和时间管理,从本章节开始讲解任务间的通信和同步机制。首先讲解任务间的通信和同步机制之一,事件标志组。 时间标志组:移植了三个小型嵌入式操作系统了,应该明确一下这个时间标志组 阅读全文
posted @ 2017-08-10 14:44 Crystal_Guang 阅读(1794) 评论(0) 推荐(0) 编辑
摘要:以下内容转载自安富莱电子: http://forum.armfly.com/forum.php 本章节为大家讲解 RTX 操作系统的时钟节拍和时间管理函数,其中时间管理函数是 RTX 的基本函数,初学者务必要掌握。 RTX 的时钟节拍任何操作系统都需要提供一个时钟节拍,以供系统处理诸如延时,超时等与 阅读全文
posted @ 2017-08-10 14:05 Crystal_Guang 阅读(2131) 评论(0) 推荐(0) 编辑
摘要:以下内容转载自安富莱电子: http://forum.armfly.com/forum.php 临界段代码的临界段也称为临界区,一旦这部分代码开始执行,则不允许任何中断打断。为确保临界段代码的执行不被中断,在进入临界段之前须关中断,而临界段代码执行完毕后,要立即开中断。由于 Cortex-M3/M4 阅读全文
posted @ 2017-08-10 11:10 Crystal_Guang 阅读(1615) 评论(0) 推荐(0) 编辑
摘要:以下内容转载自安富莱电子: http://forum.armfly.com/forum.php 本章教程为大家将介绍 RTX 操作系统支持的任务调度方式,抢占式,时间片和合作式,这部分算是RTX 操作系统的核心了。 对于初学者来说,要一下子就能够理解这些比较困难些,需要多花些时间把这些基本概念搞清楚 阅读全文
posted @ 2017-08-10 10:42 Crystal_Guang 阅读(1412) 评论(0) 推荐(0) 编辑
摘要:以下内容转载自安富莱电子: http://forum.armfly.com/forum.php 本章教程为大家讲解 RTX 运行模式的一个重要知识点,特权级模式和非特权级模式,有些资料或者书籍将非特权级模式称为用户模式。 RTX 任务特权级知识点说明对于初学者只需记住本小节的知识点即可,如果要深入的 阅读全文
posted @ 2017-08-10 10:21 Crystal_Guang 阅读(1611) 评论(0) 推荐(0) 编辑
摘要:以下内容转载自安富莱电子: http://forum.armfly.com/forum.php 任务优先级设置注意事项RTX 操作系统任务优先级的设置要注意以下几个问题: 设置任务的优先级时,数值越小优先级越低。 最低任务优先级是 0,此优先级被空闲任务使用,任何其它任务都不可以使用。 用户可 阅读全文
posted @ 2017-08-09 21:47 Crystal_Guang 阅读(1391) 评论(0) 推荐(0) 编辑
摘要:以下内容转载自安富莱电子: http://forum.armfly.com/forum.php 单任务系统学习多任务系统之前,我们先来回顾下单任务系统的编程框架,即裸机时的编程框架。 裸机编程主要是采用超级循环(super-loops)系统,又称前后台系统。应用程序是一个无限的循环,循环中调用相应的 阅读全文
posted @ 2017-08-09 20:42 Crystal_Guang 阅读(1282) 评论(0) 推荐(0) 编辑
摘要:时钟节拍 时钟节拍可谓是 uC/OS 操作系统的心脏,它若不跳动,整个系统都将会瘫痪。 时钟节拍就是操作系统的时基,操作系统要实现时间上的管理,必须依赖于时基。 时钟节拍就是系统以固定的频率产生中断(时基中断),并在中断中处理与时间相关的事件,推动所有任务向前运行。 时钟节拍需要依赖于硬件定时器, 阅读全文
posted @ 2017-08-08 10:20 Crystal_Guang 阅读(6708) 评论(0) 推荐(0) 编辑
摘要:逗号操作符,是优先级最低的一个。 eg1: eg2: c语言提供一种特殊的运算符,逗号运算符,优先级别最低,它将两式联接起来,如:(3+5,6+8)称为逗号表达式,其求解过程先表达式1,后表达式2,整个表达式值是表达式2的值,如:(3+5,6+8)的值是14。(a=3*5,a*4)的值是60。表达式 阅读全文
posted @ 2017-08-06 13:08 Crystal_Guang 阅读(3671) 评论(0) 推荐(0) 编辑
摘要:传统上,一个程序一般会有这几个段: .test, .data, .bss段。下面就来说一说各段的作用是什么,以此了解c语言中的各元素(函数和变量)是被放在哪一个段中的。 指令段: 地改写。 处理器所需加工的数据是放在.data,.bss,.rdata段的。当然,除了这几个段外,数据也可以来自堆和栈( 阅读全文
posted @ 2017-08-01 19:34 Crystal_Guang 阅读(577) 评论(0) 推荐(0) 编辑
摘要:调度器介绍简单的说,调度器就是使用相关的调度算法来决定当前需要执行的任务。所有的调度器有一个共同的特性:调度器可以区分就绪态任务和挂起任务(由于延迟,信号量等待,邮箱等待,事件组等待等原因而使得任务被挂起)。调度器可以选择就绪态中的一个任务,然后激活它(通过执行这个任务)。当前正在执行的任务是运行态 阅读全文
posted @ 2017-08-01 10:34 Crystal_Guang 阅读(2949) 评论(0) 推荐(0) 编辑

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