RT-thread

转载 2015年11月19日 17:07:40

RT-Thread中支持静态和动态两种定义方式。

用线程来举例的话,rt_thread_init对应静态定义方式,rt_thread_create对应动态定义方式。

使用静态定义方式时,必须先定义静态的线程控制块,并且定义好堆栈空间,然后调用rt_thread_init来完成线程的初始化工作。采用这种方式,线程控制块和堆栈占用的内存会放在RW段,这段空间在编译时就已经确定,它不是可以动态分配的,所以不能被释放。而只能使用rt_thread_detach函数将该线程控制块从对象管理器中脱离。

使用动态定义方式rt_thread_create时,RT-Thread会动态申请线程控制块和堆栈空间。在编译时,编译器是不会感知到这段空间的,只有在程序运行时,RT-Thread才会从系统堆中申请分配这段内存空间,当不需要使用该线程时,调用rt_thread_delete函数就会将这段申请的内存空间重新释放到内存堆中。

这两种方式各有利弊,

静态定义方式会占用RW空间,但是不需要动态分配内存,运行时效率高。
动态方式不会占用额外的RW空间,占用空间小,但是运行时需要动态分配内存,效率没有静态方式高。
总的来说,这两种方式就是空间和时间效率的平衡,可以根据实际环境需求选择采用具体的分配方式。

相关文章推荐

RT-thread 学习资料大全

  • 2017年11月18日 14:18
  • 33.87MB
  • 下载

基于rt-thread+lwip分析数据是怎么从网卡芯片接收数据到pbuf的(lwip源码解析一)

LWIP是嵌入式设备的网络微协议,基本上实现了标准的TCP/IP的功能,它没有项标准的TCP/IP协议那样有很严格的分层。主要原因是由于嵌入式设别的资源有限,所以避免了每层的COPY动作,在不同层之间...
  • bobbat
  • bobbat
  • 2015年03月30日 23:36
  • 1694

一起来学RT-Thread教程连载

  • 2015年08月13日 18:07
  • 47.72MB
  • 下载

stm32f103vet6+rt-thread lwip

  • 2015年07月09日 17:34
  • 10.55MB
  • 下载

Scons构建RT-Thread开发环境

1.下载并安装软件,下载RT-Thread源码。软件和源码可以去对应官网下载,这里不多说了。 python-2.7.11 scons-2.4.1-setup 说明一下,搭建开发环境前需要安装编译...

一起来学RT-Thread教程之文件系统

  • 2014年06月24日 16:19
  • 721KB
  • 下载

RT-THREAD文件

  • 2013年03月22日 10:11
  • 2.5MB
  • 下载

RT-Thread的I/O设备模块及其驱动实现步骤

一、I/O设备控制块 1、I/O设备控制块 struct rt_device { struct rt_object parent; /* 设备类型 */ enum rt_device_class_...

RT-Thread 1.1.0 Alpha源码

  • 2012年08月02日 10:26
  • 7.75MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:RT-thread
举报原因:
原因补充:

(最多只允许输入30个字)