RT-thread创建线程并且启动

简介: 笔记

一. 简介


创建线程有两种方式,根据是否由rt分配内存,分为静态创建线程和动态创建线程。默认是静态分配线程,如果需要使用动态创建线程的话,则需要开启宏定义RT_USING_HEAP,并设置heap相关函数。


二. 静态创建线程


rt_err_t rt_thread_init(struct rt_thread* thread,
                        const char* name,
                        void (*entry)(void* parameter), void* parameter,
                        void* stack_start, rt_uint32_t stack_size,
                        rt_uint8_t priority, rt_uint32_t tick);

thread : 线程句柄

name :线程名字

parameter :线程入口函数

stack_start: 线程栈起始地址

stack_size : 线程栈的大小

priority: 线程的优先级

tick: 线程的时间片大小


rt_thread_init(&thread_led,
      "thread1",
      thread_led_On,
      RT_NULL,
      thread_Led_stack,
      sizeof(thread_Led_stack),
      30,5);


三. 动态创建线程


调用这个函数,会返回线程句柄。


rt_thread_t rt_thread_create(const char* name,
                            void (*entry)(void* parameter),
                            void* parameter,
                            rt_uint32_t stack_size,
                            rt_uint8_t priority,
                            rt_uint32_t tick);


在使用这个函数的时候,需要先在rtconfig.h中开启

#define RT_USING_HEAP

宏定义(默认是注释掉了的)

然后在board.c里面设置RT_HEAP_SIZE的大小就可以了。

27.png


四. 启动线程


启动线程非常简单,只需要调用这个函数即可。参数是线程句柄。

rt_thread_startup(&thread_led);


五. PS


优先级等级默认为8(然后它这里注释的是为32),如果初始化线程的时候,优先级大于8了的话,线程就不会启动了。优先级等级可以在rtconfig.h修改。

28.png

公众号:FPGA之旅

目录
相关文章
|
7月前
|
算法 调度 芯片
RT-Thread快速入门-线程管理
RT-Thread快速入门-线程管理
143 0
RT-Thread快速入门-线程管理
|
7月前
|
数据处理 容器
RT-Thread快速入门-线程间同步之信号量
RT-Thread快速入门-线程间同步之信号量
115 0
|
7月前
|
数据处理 调度
RT-Thread快速入门-线程管理(下)
RT-Thread快速入门-线程管理(下)
154 0
RT-Thread线程创建和删除
RT-Thread线程创建和删除
153 0
|
小程序 调度 内存技术
RTOS rt-thread裸机系统与多线程系统
RTOS rt-thread裸机系统与多线程系统
|
编译器
【玩转RT-Thread】线程间同步(一) 信号量
【玩转RT-Thread】线程间同步(一) 信号量
184 0
|
调度
【玩转RT-Thread】 RT-Thread Studio使用(2) 内核实战篇(线程)
【玩转RT-Thread】 RT-Thread Studio使用(2) 内核实战篇(线程)
310 0
|
API 调度
【玩转RT-Thread】线程管理(详细原理)(下)
【玩转RT-Thread】线程管理(详细原理)
338 0
|
传感器 调度 芯片
【玩转RT-Thread】线程管理(详细原理)(上)
【玩转RT-Thread】线程管理(详细原理)(上)
312 0
|
API 调度 C语言
RT-Thread记录(三、RT-Thread 线程操作函数及线程管理与FreeRTOS的比较)
前2课讲完了RT-Thread开发环境,启动流程,启动以后当然是开始跑线程了,那么自然我们得学会如何创建线程以及线程的有关操作。
834 0
RT-Thread记录(三、RT-Thread 线程操作函数及线程管理与FreeRTOS的比较)