main的优先级是#define RT_MAIN_THREAD_PRIORITY (RT_THREAD_PRIORITY_MAX / 3) timer的优先级是#define RT_TIMER_THREAD_PRIO 0 tidled的优先级是RT_THREAD_PRIORITY_MAX - 1 3.时钟管理
void(*entry)(void*parameter),void*parameter,rt_uint32_tstack_size,rt_uint8_tpriority,rt_uint32...
{#ifRT_THREAD_PRIORITY_MAX > 32rt_thread_ready_table[thread->number] &= ~thread->high_mask;if(rt_thread_ready_table[thread->number] ==0) { rt_thread_ready_priority_group&= ~thread->number_mask; }#elsert_thread_ready_priority_group&= ~thread->number_mask;#endif}/*enable interrupt*...
RT_MAIN_THREAD_STACK_SIZE RT_MAIN_THREAD_STACK_SIZE这个占RAM大小, 其他编译选项优化空间有限,我就不一一介绍了。可以把下面的头文件放到你的rtconfig.h中查看具体有多少代码缩减 1#define RT_THREAD_PRIORITY_MAX 3 2 3#define RT_TICK_PER_SECOND 1000 4 5#define RT_ALIGN_SIZE 4 6 7#define RT_NA...
rt_thread_delay(RT_TICK_PER_SECOND/2); } } 这样编写程序后,编译通过,烧写后却发现LED根本无法按照预期进行工作,这是因为我们还缺少工作没有做。 打开board.c,可以看到它上面有几句注释,根据注释,修改如下: #include <rthw.h> #include <rtthread.h> ...
目前pack包含有kernel、shell(msh)、device drivers三部分功能,这3个功能可按实际使用情况按需加载。本次使用的主芯片为GD32F150C8T6,资源为Flash:64K,RAM:8K。 一、RT-Thread Nano Pack下载安装 1.在Keil5主界面上点击“Pack Install”按钮,即可进入Pack Install界面 ...
上文说到RT-Thread对临界区的处理方式有多种,其中已经分析了关闭调度器和屏蔽中断的方式, 本文就来学学另外的线程同步方式。 目录 前言 一、IPC机制 二、信号量 2.1 信号量控制块 2.2 信号量操作 2.2.1 创建和删除 2.2.2 初始化和脱离 2.2.3 获取信号量 ...
RT_THREAD_PRIORITY_MAX-2, 20); if(rst == RT_EOK) { rt_thread_startup(&led_thread); } } 上述代码很简单,就是在main()函数中对LED的GPIO进行初始化,也就是调用了LED_GPIO_Config() 函数,而针对RT-Thread系统,我们在需要初始化的地方进行初始化即可,无需在main()函数或者board.c中初始化了。
这里的RT_THREAD_PRIORITY_MAX表示可用的线程优先级数,这里用了32个,最大可支持256个优先级,且数字越小,优先级越大。用图表说明为: 优先级管理数组 voidrt_system_scheduler_init(void){register rt_base_t offset;rt_scheduler_lock_nest=0;for(offset=0;offset<RT_THREAD_PRIORITY_MAX;offset++){rt_list_...
RT_NAME_MAX, thread->name, thread->current_priority));/* set priority mask */ #if RT_THREA...