RT-Thread学习笔记(三)—— BlinkLED (3)

至此,RT-Thread的一个具体的线程就了解完毕,一个线程的三大要素——主体,控制块,堆栈也都作以了解,接下来我们开始最重要的部分,创建一个线程;

2.3.线程的创建

在2.2.3节讲述创建线程堆栈时提到,如果栈空间可以是一个预先定义好的全局数组,比如led线程的堆栈,这样的线程称为静态线程,相对的,如果这个栈空间是动态分配的,该线程称为动态线程**。

接下来通过具体的实例说明:

2.3.1.静态线程的创建

RT-Thread中静态线程的线程堆栈由编译器静态分配,使用rt_thread_init()函数创建,代码如下所示:

int led_sample_init(void)
{
    rt_err_t result;

    /* init led thread */
    result = rt_thread_init(&led_thread,
                            "led",
                            led_thread_entry,
                            RT_NULL,
                            (rt_uint8_t *)&led_stack[0],
                            sizeof(led_stack),
                            20,
                            5);
    if (result == RT_EOK)
    {
        rt_thread_startup(&led_thread);
    }
    return 0;
}

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpjzpp.html