更多的操作详见 rtservice.c 文件中相关函数,`rt_list_init, rt_list_insert_after, rt_list_insert_before, rt_list_remove` 等等。 停止定时器会把当前定时器从定时器列表删除,无论这个定时器有没有在某个定时器列表中,或者只是一个独立的定时器节点,删除操作的结果都是一样的,使用 list 这个临时列表可能...
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_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...
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(); ...
意外的BUG发现:数据节点的链表的头,也就是 链表head也没有初始化,解决方法同上,需要初始化 链表的头:使用rt_list_init,这样问题得到解决 移植的代码之前使用的hashlist,声明时即初始化了,不需要显示的初始化,而RT-Thread list,必须初始化,否则把链表节点插入 链表头部的时候,就会出现 野指针或空指针 访问成员的...
rt_list_init(&rt_thread_priority_table[offset]);} 2.1.2 将线程插入就绪列表 rt_thread_startup...
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...
我们找到drv_common.c文件中的rt_hw_systick_init函数,如下图: 上图就是 RT-Thread 初始化配置启动 MCU 滴答定时器的函数,里面的配置用到了我们的宏定义RT_TICK_PER_SECOND,所以宏定义的改变可以直接改变 Systick 的频率,直接使得系统的时钟节拍不同。