- 博客(14)
- 资源 (1)
- 收藏
- 关注

原创 以卧槽的思维理解(RTOS)嵌入式实时系统(1)
卧槽,该系列文章竟然只分析软实时系统,硬的咱也不了解啊。实时系统总离不开这些出现频繁的词汇:资源,任务资源:为任务所占用的,都可称之为资源包括变量,或者数组,结构体,外设资源等任务:可以想成为一个可以运行的程序,当程序运行时,它认为整个cpu都在为自己服务,当然整个系统不只一个任务,可能多个任务组成。每个任务有自己的执行优先级,自己的堆栈空间(有的rtos公用堆栈空间)。所有的这些组成...
2019-07-03 14:25:42
658
1

转载 单片机多任务的时间片方式实现 .
引言 由于单片机具有价格低、运行要求低、易于开发、稳定可靠等优点,广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域。但是,单片机的位数少、频率低、内存小、I/O口少等缺点限制了其加载操作系统的可能。因此,单片机不能像ARM等较高性能的处理器一样,利用加载的操作系统实现管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等...
2016-09-12 22:03:18
2165
原创 BUG的烦恼
在我们这个行业的学习和工作中,bug是个逃不掉的话题。最近两天,在调试一个程序,程序本来是完整的,只是我需要把它移植到另一个平台上。框架是没有动的,连平台的架构都很像,属于一个系列的芯片,但问题来了:总也运行不到想要的结果,和预期总是相差。bug分好多种,必现的,和不稳定的,必现的还好点,根据现象,最多把逻辑再捋一遍,总能发现问题所在。我遇到的属于后者,每次的现象不一致,这个很...
2019-07-03 14:43:36
210
原创 什么是看门狗?
一样采用简单明了的例子来解释。条件:你家有条狗事件:让他看门,报警结果:1到点不给吃饭,会叫,2到点喂他吃东西,等待下次开饭影响:叫了,造成噪声,影响大家休息单片机的看门狗,故名思议,一个狗是要做为警醒某些异常事情的,当单片机采用看门狗功能时,是为了防止某些异常发生,例如某个功能运行异常,或者程序跑飞,卡死,在某处死循环,等等一系列amazing的情况,但是,只要你使用了看门狗...
2019-07-03 14:41:32
1684
1
原创 什么是中断?
中断嘛,对于很多新手来讲,有点难以理解,举个容易的现实的例子吧。如果还不懂,骚年,考虑换行吧,或许这不是你的方向呢,诗和远方在前面岔路左拐。比如小明和老丈人在喝酒,眼看老丈人就快招架不住了,正当此时,小明的女友小丽来了,非要小明陪她上街买口红,于是小明暂停和老丈人的对饮,先把酒桌封了,待买完口红后继续畅饮。傍晚时候,小明和小丽买好了口红,小明面露疲惫来到酒桌前,继续和老丈人对酌。...
2019-07-03 14:40:35
4238
3
原创 指针函数和函数指针的区别
1、指针函数:带指针的函数,其本质是一个函数,函数返回是某一类型的指针。例如:int *f(x,y);其结构为 类型标识符 *函数名(参数)首先你要从心里承认这是一个函数,只是返回的是个地址值。由于返回值是地址,所以一般类型都为int。2、函数指针:是指向函数的指针变量,其本质是一个指针变量。指向函数的入口地址,可以通过它来调用函数。例如 :void (*pt...
2019-07-03 14:36:38
14478
3
原创 循环缓存区的实现原理
经常会设置一个数组之类的用来存储临时接受的数据,由于数据是临时的,具有不确定性,随机性,如果没及时读取,会造成数据丢失,对工程的运行不利。我们如何建立一个循环的buf,当有新数据,存储在最新的位置,以便访问。首先我们假设开辟一个10*32大小的数组a[10][32],假设我们的数据没次是32个byte,那我们可以存10组数据,当然越大越好,但一般小型处理器没有那么多可操作空间。我们再定...
2019-07-03 14:34:53
1536
原创 判断你的单片机内存增长方式-大小端
在main函数里这样几句int i=0x12345678;char*b = &i;if((b[0]==0x78)&&(b[1]==0x56)&&(b[2]=0x34)&&(b[3]==0x12))printf(“small ”);else printf(“big”);//为真则是小端模式。...
2019-07-03 14:33:34
400
原创 链表的实现
#include <stdio.h>#include <stdlib.h>typedef int ElemType;//定义结点类型typedef struct Node { ElemType data; //单链表中的数据域 struct Node *next; //单链表的指针域}Node,*LinkedList;...
2018-03-29 17:27:21
186
转载 freertos和ucos的区别
一、freeRTOS比uCOS II优胜的地方: 1。内核ROM和耗费RAM都比uCOS 小,特别是RAM。 这在单片机里面是稀缺资源,uCOS至少要5K以上, 而freeOS用2~3K也可以跑的很好。 2。freeRTOS 可以用协程(Co-routine),减少RAM消耗(共用STACK)。uCOS只能用任务(TASK,每个任务有一个独立的STACK)。 3。freeRTOS 可以有优...
2018-03-29 17:23:11
14836
2
原创 将一个字节数据进行高低位镜像对调的实现函数
unsigned char swap (unsigned char pData){ unsigned char value=0,tmp=0; unsigned char ii,jj; for (ii=0x80,jj=0;ii!=0;ii=ii>>1,jj++) { if (pData & ii) tmp=1; else tmp =0; value |= tmp } return valu
2018-01-19 17:53:06
3657
转载 关于ucosii的邮箱
ucos II 任务间 通信之四:邮箱 学过信号量之后再来看邮箱,发现他们是非常相似的,甚至有时候邮箱可以当做信号量来使用,邮箱相对信号量而言,只是多传递了一个指针变量。和信号量很相似,ucos II提供了5个对邮箱进行操作的函数。它们是:1. 建立一个邮箱,OSMboxCreate()2. 等待一个邮箱中的消息,OSMboxPend()3. 发送一个消息到邮箱中,OSMboxPost()4...
2016-10-21 17:08:07
1007
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人