/* delete semaphore object */ rt_object_delete(&(sem->parent.parent)); returnRT_EOK; } //在rt_object_delete(rt_object_t object)函数中,主要执行了两个操作,一个是rt_list_remove(&object->list),一个是RT_KERNEL_FREE(object); //object是指针,作为变量传递赋值的时候,可不等价于传递地址了吗?
如果第一个定时器的延时时间到了,就rt_list_remove(&timer->row[0]),然后调用rt_thread_timeout( );根据flag决定是否重新开启定时器; //因为定时器链表是按延时时间升序排列的,所以第一个定时器时间没到,后面的定时器也没到; voidrt_timer_check(void) { structrt_timer*t; rt_tick_tcur...
rt_list_init(&rt_thread_priority_table[offset]);} 2.1.2 将线程插入就绪列表 rt_thread_startup...
=RT_THREAD_SUSPEND){RT_DEBUG_LOG(RT_DEBUG_THREAD,("thread resume:thread disorder,%d\n",thread->stat));return-RT_ERROR;}/* disable interrupt */temp=rt_hw_interrupt_disable();/* remove from suspend list */rt_list_remove(&(thread->tlist));rt_timer_stop(...
问文件(file,"rt")中出错:无法打开连接EN一、无法打开文件“xxx.lib” 出现这种错误一般为 ①未...
rt_inline void rt_list_remove(rt_list_t *n) { n->next->prev = n->prev; /* 第(1)步 */ n->prev->next = n->next; /* 第(2)步 */ n->next = n->prev = n; /* 第(3)步 */ } 1. 2. 3. 4. 5. 6. 7.
内核层:RT-Thread内核,是 RT-Thread的核心部分,包括了内核系统中对象的实现,例如多线程及其调度、信号量、邮箱、消息队列、内存管理、定时器等;libcpu/BSP(芯片移植相关文件 / 板级支持包)与硬件密切相关,由外设驱动和 CPU 移植构成。 组件与服务层:组件是基于 RT-Thread内核之上的上层软件,例如虚拟文件系统、FinS...
find arch in arch list if [ -z $1 ] then def_arch="arm" # default arch is arm else for arch in $supported_arch do if [ $arch = $1 ] then def_arch=$arch break fi done fi set env case $def_arch in "arm") export RTT_CC=gcc ...
//将node移出list之后,如果list为空那么清零list所对应优先级组bit; voidrt_schedule_remove_thread(structrt_thread *thread) { registerrt_base_ttemp; RT_ASSERT(thread != RT_NULL); /* disable interrupt */ temp = rt_hw_interrupt_disable(); ...
lwp_tid_put(tid->tid); rt_list_remove(&tid->sibling); lwp_ref_dec(lwp); rt_hw_interrupt_enable(level); return; } static void lwp_copy_stdio_fdt(struct rt_lwp *lwp) { struct dfs_fd *d; struct dfs_fdtable *lwp_fdt; lwp_fdt = &lwp->fdt; ...