
OSAL
文章平均质量分 75
JQ_AK47
这个作者很懒,什么都没留下…
展开
-
osal之添加中断向量
添加中断向量 我们需要找到中断函数的定义,这个文件的名字叫做hal_mcu.h, ,我们可以看到很多宏定义,其中Compiler Abstraction部分代码如下:/* ------------------------------------------------------------------------------------------------ *原创 2015-05-15 12:04:24 · 1937 阅读 · 1 评论 -
OSAL之任务同步
在多任务执行过程中的,操作系统应解决两个问题: 一是各任务之间应具有一种互斥关系,即对于某个共享资源的访问,如果一个任务正在使用,则其他任务只能等待,等到该任务释放该资源以后,等待的任务之一才能使用它; 二是相关的任务在执行上要有先后次序,一个任务要等其伙伴发来通知或或消息或建立了某个条件后才能继续执行,否则只能等待。 任务之间的这种制约性的合作运行机制叫做任务间的同步。 OSAL采用事件标原创 2015-05-13 22:50:20 · 2034 阅读 · 0 评论 -
OSAL 之功耗管理
尊重原创,转载请注明:基于蓝牙4.0,协议栈版本是1.3.2 在OSAL中的OSAL_PwrMgr.c与OSAL_PwrMgr.h两个文件实现对功耗的控制。首先是功耗管理的结构体定义typedef struct{ uint16 pwrmgr_task_state; //是否进入节能模式 uint16 pwrmgr_next_timeout; //记录软件定时器中下原创 2015-05-11 16:54:18 · 3091 阅读 · 0 评论 -
OSAL之任务管理
转载请注明出处,尊重原创总论OSAL每个任务最多只能支持16个事件处理,对于一些运算能力不强,内存空间不大的处理器最适合不过了。OSAL实际上不是一个真正意义上的操作系统,在加上它最多只能处理16个事件,所以OSAL没有像其他操作系统一样有复杂的任务调度算法,每个任务都是有序轮流执行。OSAL的任务管理代码主要在OSAL.c中。1、定义任务事件处理函数的格式最常用的任务函数格式是:有几个参数以及返回原创 2015-05-10 22:39:42 · 2914 阅读 · 0 评论 -
OSAL之时间管理,软件定时器链表管理
读源码写作,尊重原创;本博文根据蓝牙4.0, 协议族版本是1.3.2 本博文分两大块。一部分是时间管理,另一部分是软件定时器管理。OSAL的时钟实现在OSAL_CockBLE.c与OSAL_Clock.h两个文件中。OSAL支持完整的UTC(世界统一时间),以2000年1月1日00:00:00为时间起点,可以精确到年、月、日、时、分、秒的时间值。背景知识// number of seconds s原创 2015-05-18 10:23:54 · 4627 阅读 · 1 评论 -
OSAL之消息管理
转载请注明出处,尊重原创;本文基于蓝牙1.3.2版本总述: 消息处理机制流程 OSAL中实现对消息管理的功能实现是在osal.c 与 osal.h 文件中,对于操作系统来说,不可缺少的就是任务之间信息的传递,消息包括:信号量,互斥量,消息邮箱、消息队列等。在OSAL中仅仅实现了消息队列的功能,系统可以发送或接收消息,并对消息进行管理。背景知原创 2015-05-14 10:22:40 · 5216 阅读 · 5 评论 -
OSAL之回调定时器相关分析
本文基于协议栈1.3.2阐述,请尊重原创总论:OSAL提供一种可以带回调函数功能的定时器,它的实现主要在Osal_ctimer.c与Osal_cbtimer.h两个文件中。回调定时器的是在OSAL的软件定时器基础上注册一个回调函数,当定时器时间到的时候,会执行事先注册的回调函数。相比与事件定时器的比较是:回调定时器用一个任务来处理所有回调定时器的相关事件,每个任务可以处理15个回调定时器的事件,事件原创 2015-06-08 15:30:53 · 3719 阅读 · 1 评论 -
OSAL之按键驱动
本博文根据协议栈1.3.2,尊重原创,注明出处,欢迎转载学习按键驱动的主要有两大块:第一:按键引脚设置; 第二:按键事件的触发检测与轮询,以及按键消息的发送 先说明第一大块,按键引脚设置, 超出cc2540片子从机的按键两个按键,按键是共地。所以它的触发方式是下降沿触发按键中断,同时程序对按键按下这个动作检测是中断方式检测,一旦有按键按下,触发一个按键轮询函数执行,同时把对按键的检测方式换成轮询原创 2015-06-08 20:37:25 · 1762 阅读 · 0 评论