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之旅

目录
相关文章
|
5月前
|
人工智能 自然语言处理 Linux
进程(process) vs 线程(Thread)
本文主要介绍了进程和线程的基本概念、区别以及操作系统如何调度线程的方式。同时,还介绍了线程锁的核心原理和实现方式。在多线程编程中,理解进程和线程的概念以及线程锁的使用,对于保证程序的安全性和性能非常重要。
48 0
|
4月前
|
消息中间件 算法 物联网
RT-Thread快速入门-初探RT-Thread
RT-Thread快速入门-初探RT-Thread
44 0
|
8月前
RT-Thread线程创建和删除
RT-Thread线程创建和删除
92 0
|
9月前
|
调度
[启动流程] RT-Thread是如何启动的?
[启动流程] RT-Thread是如何启动的?
|
9月前
|
消息中间件 算法 安全
关于RT-Thread内核的介绍
关于RT-Thread内核的介绍
|
消息中间件 安全 Java
|
Java
线程 --- Thread类
线程 --- Thread类
62 0
|
安全 Java 中间件
Thread.sleep(0)的作用
在源码中经常能看到sleep(0)的操作,今天来总结下sleep(0)的作用到底是啥
385 0
|
消息中间件 缓存 Linux
RT-Thread记录(十、全面认识 RT-Thread I/O 设备模型)
学完 RT-Thread 内核,从本文开始熟悉了解 RT-Thread I/O 设备管理相关知识。
564 0
RT-Thread记录(十、全面认识 RT-Thread I/O 设备模型)
|
消息中间件 存储 传感器
RT-Thread记录(八、理解 RT-Thread 内存管理)
RT-Thread内核的我们已经基本都学习过了,除了基本的线程操作和通信, 内核部分还有内存管理和中断处理,本文主要就来说说内存管理相关问题。
243 0
RT-Thread记录(八、理解 RT-Thread 内存管理)