RT-Thread系统的IO设备管理模块为上层应用提供了一个对设备进行访问的通用抽象接口,而对于下层设备来说则提供了底层设备驱动框架,并通过定义的数据结构对设备信息和底层设备驱动进行管理。从系统整体位置来说I/O设备管理模块相当于底层设备驱动和上层应用之间的一个中间层。 I/O管理模块实现...
分类:
其他好文 时间:
2015-02-12 13:43:51
阅读次数:
200
一、动态内存管理 动态内存管理是一个真实的堆(Heap)内存管理模块,可以在当前资源满足的情况下,根据用户的需求分配任意大小的内存块。而当用户不需要再使用这些内存块时,又可以释放回堆中供其他应用分配使用。RT-Thread系统为了满足不同的需求,提供了两套不同的动态内存管理算法,分别是小内存管理.....
分类:
编程语言 时间:
2015-02-10 21:31:53
阅读次数:
448
一、系统时钟rt-thread的系统时钟模块采用全局变量rt_tick作为系统时钟节拍,该变量在系统时钟中断函数中不断加1。而系统时钟中断源和中断间隔一般由MCU硬件定时器(如stm32的嘀嗒定时器)决定,rt_tick初始值为0,每次MCU产生硬件定时中断后,在中断函数中不断加1,即rt_tick...
分类:
其他好文 时间:
2015-02-10 12:49:32
阅读次数:
216
一、前言rt-thread采用软件定时器线程模式或硬件定时器中断模式来实现系统定时器管理。而rt-thread操作系统在默认情况下是采用的硬件定时器中断模式的方式,用户可以通过宏定义RT_USING_TIMER_SOFT来修改定时器管理模式。硬件定时器中断模式是利用MCU芯片本身提供的硬件定时器功能...
分类:
其他好文 时间:
2015-02-09 22:57:33
阅读次数:
4389
空闲线程是系统线程中一个比较特殊的线程,它具有最低的优先级,当系统中无其他线程可运行时,调度器将调度到空闲线程。空闲线程通常是一个死循环,永远不被挂起。RT-Thread实时操作系统为空闲线程提供了钩子函数(钩子函数:用户提供的一段代码,在系统运行的某一路径上设置一个钩子,当系统经过这个位置时,转而...
分类:
编程语言 时间:
2015-02-08 18:09:49
阅读次数:
408
一个操作系统如果只是具备了高优先级任务能够“立即”获得处理器并得到执行的特点,那么它仍然不算是实时操作系统。因为这个查找最高优先级线程的过程决定了调度时间是否具有确定性,例如一个包含n个就绪任务的系统中,如果仅仅从头找到尾,那么这个时间将直接和n相关,而下一个就绪线程抉择时间的长短将会极大的影...
分类:
编程语言 时间:
2015-02-08 12:49:31
阅读次数:
1925
一、前言RT-Thread中提供的线程调度器是基于全抢占式优先级的调度,在系统中除了中断处理函数、调度器上锁部分的代码和禁止中断的代码是不可抢占的之外,系统的其他部分都是可以抢占的,包括线程调度器自身.系统总共支持256个优先级(0 ~ 255,数值越小的优先级越高,0为最高优先级,255分配给空闲...
分类:
编程语言 时间:
2015-02-06 21:40:02
阅读次数:
366
在RT-Thread实时操作系统中,任务采用了线程来实现,线程是RT-Thread中最基本的调度单位,它描述了一个任务执行的上下文关系,也描述了这个任务所处的优先等级。重要的任务能拥有相对较高的优先级,非重要的任务优先级可以放低,并且可以类似Linux一样具备分时的效果。线程控制块是操作系统用...
分类:
编程语言 时间:
2015-02-05 23:22:28
阅读次数:
450
一、数据结构1、对象控制块:在include/rtdef.h中定义 1 /** 2 * Base structure of Kernel object 3 */ 4 struct rt_object 5 { 6 char name[RT_NAME_MAX]; /*对象名称,R...
分类:
其他好文 时间:
2015-02-05 20:06:12
阅读次数:
357
RT-Thread的内核对象模型是一种非常有趣的面向对象实现方式。由于C语言更为面向系统底层,操作系统核心通常都是采用C语言和汇编语言混合编写而成。C语言作为一门高级计算机编程语言,一般被认为是一种面向过程的编程语言:程序员按照特定的方式把要处理事物的过程一级级分解成一个个子过程。面向对象源于...
分类:
其他好文 时间:
2015-02-05 12:54:14
阅读次数:
209