static struct rt_thread led1_thread;/* 定义线程控制块 */
ALIGN(RT_ALIGN_SIZE) static rt_uint8_t rt_led1_thread_stack[1024];/* 定义线程栈 */
/*
* 开发板硬件初始化,RTT 系统初始化已经在 main 函数之前完成,
* 即在 component.c 文件中的 rtthread_startup()函数中完成了。
* 所以在 main 函数中,只需要创建线程和启动线程即可。
*/
rt_thread_init(&led1_thread, /* 线程控制块 */
"led1", /* 线程名字 */
led1_thread_entry, /* 线程入口函数 */
RT_NULL, /* 线程入口函数参数 */
&rt_led1_thread_stack[0], /* 线程栈起始地址 */
sizeof(rt_led1_thread_stack), /* 线程栈大小 */
3, /* 线程的优先级 */
20); /* 线程时间片 */
rt_thread_startup(&led1_thread); /* 启动线程,开启调度 */
//任务函数
static void led1_thread_entry(void* parameter)
{
while (1)
{
HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_0);
HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_1);
rt_thread_delay(500); /* 延时 500 个 tick */
}
}
|