更多的操作详见 rtservice.c 文件中相关函数,`rt_list_init, rt_list_insert_after, rt_list_insert_before, rt_list_remove` 等等。 停止定时器会把当前定时器从定时器列表删除,无论这个定时器有没有在某个定时器列表中,或者只是一个独立的定时器节点,删除操作的结果都是一样的,使用 list 这个临时列表可能...
rt_uint16_t c; rt_list_t member; }TestNode; void rt_list_test() { TestNode test_head; rt_list_init(&test_head.member); for(int i = 0; i < 10; ++i) { TestNode *new_node = rt_malloc(sizeof(TestNode)); new_node->a = i; rt_list_insert_before(&test_head.member, &ne...
{charname[RT_NAME_MAX];/**< name of kernel object*/rt_uint8_t type;/**< type of kernel object*/rt_uint8_t flag;/**< flag of kernel object*/rt_list_t list;/**< list node of kernel object*/}; 在对象初始化时--rt_object_init()函数,会将该对象指针(rt_list_t list)插入到in...
for (offset = 0; offset < RT_THREAD_PRIORITY_MAX; offset ++) { rt_list_init(&rt_thread_priority_table[offset]); } /** 系统当前优先级为RT_THREAD_PRIORITY_MAX-1 */ rt_current_priority = RT_THREAD_PRIORITY_MAX - 1; /** 当前线程指针为RT_NULL */ rt_current_thread = RT_NULL; /...
rt_hw_board_init 主要完成硬件初始化。 /* bsp/k210/driver/board.c */ void rt_hw_board_init(void) { sysctl_pll_set_freq(SYSCTL_PLL0, 800000000UL); sysctl_pll_set_freq(SYSCTL_PLL1, 400000000UL); /* Init FPIOA */ fpioa_init(); ...
rt_list_trt_thread_defunct; 2 rt_system_scheduler_init( ) rt_thread_priority_table[ ] 和 rt_thread_ready_priority_group 初始化;rt_thread_defunct 也在这初始化; //component.c rtthread_startup()中调用rt_system_scheduler_init(); ...
rt_list_init里面又执行什么操作呢 t_inline void rt_list_init(rt_list_t *l) { l->next = l->prev = l; } 1. 2. 3. 4. rt_system_timer_thread_init软件定时器初始化,其实就是把软件定时器放入rt_list_init中,然后给每一个软件定时器定时器开启线程。
rt_list_init(&rt_thread_priority_table[offset]);} 2.1.2 将线程插入就绪列表 rt_thread_startup...
其中init_priority 是线程创建时指定的线程优先级,在线程运行过程当中是不会被改变的(除非用户 执行线程控制函数进行手动调整线程优先级)。 cleanup 会在线程退出时,被空闲线程回调一次以执行用户设置的清理现场等工作。 最后的一个成员user_data 可由用户挂接一些数据信息到线程控制块中,以提供类似线程私有数据的实现...
rt_list_t rt_thread_priority_table[RT_THREAD_PRIORITY_MAX]; 这里的RT_THREAD_PRIORITY_MAX表示可用的线程优先级数,这里用了32个,最大可支持256个优先级,且数字越小,优先级越大。用图表说明为: 优先级管理数组 voidrt_system_scheduler_init(void){register rt_base_t offset;rt_scheduler_lock_nest=0;fo...