对于RT-Thread中,比较关心的是ROM资源以及RAM资源,所以在设计之初,首先评估资源是否合理去跑一个rtos。 比如,rt-thread nano版本对 RAM 与 ROM 的开销非常小,在支持 semaphore 和 mailbox 特性,并运行两个线程 (main 线程 + idle 线程) 情况下,ROM 和 RAM 依然保持着极小的尺寸,RAM 占用约 1K 左右,ROM 占...
如果把链表插入到【尾部】后面,就要先把链表指针移到尾部,再执行:rt_list_insert_after. 查看内核对象 其实,thread,device等对象,都是内核对象【派生】出来的。 RT-Thread 提供list_thread、list_device等,查看内核的对象。 查看线程初始化【次序】,看看最后打印的线程,就是【最先】首个创建的线程。 一般从链表【...
RT-Threadshellcommands:version-showRT-Threadversioninformationlist_thread-listthreadlist_sem-listsemaphoreinsystemlist_event-listeventinsystemlist_mutex-listmutexinsystemlist_mailbox-listmailboxinsystemlist_msgqueue-listmessagequeueinsystemlist_timer-listtimerinsystemlist_device-listdeviceinsystemexit-returntoRT...
如果把链表插入到【尾部】后面,就要先把链表指针移到尾部,再执行:rt_list_insert_after. 查看内核对象 其实,thread,device等对象,都是内核对象【派生】出来的。 RT-Thread 提供list_thread、list_device等,查看内核的对象。 查看线程初始化【次序】,看看最后打印的线程,就是【最先】首个创建的线程。 一般从链表【...
voidrt_system_scheduler_start(void){register struct rt_thread*to_thread;register rt_ubase_t highest_ready_priority;highest_ready_priority=__rt_ffs(rt_thread_ready_priority_group)-1;/* get switch to thread */to_thread=rt_list_entry(rt_thread_priority_table[highest_ready_priority].next,struct...
RT-Thread 提供list_thread、list_device等,查看内核的对象。 查看线程初始化【次序】,看看最后打印的线程,就是【最先】首个创建的线程。 一般从链表【头部】开始遍历各个链表节点。如下:最后一个节点是:main线程. 其实,main线程,是第一个创建的。 msh />list_thread ...
list_thread-list thread …… 运行hello 命令,运行结果如下所示: 代码语言:javascript 代码运行次数:0 运行 AI代码解释 msh/>hello hello RT_Thread!msh/> 导出有参数的命令时,函数的入参为 int argc 和 char**argv。argc 表示参数的个数,argv 表示命令行参数字符串指针数组指针。导出有参数命令示例如下: ...
终端输入list_thread可以查看所有的线程 5、总结 这里也许就有疑问了,为什么线程入口函数的打印命令没有被执行? 其实我们再看th_demo线程的状态可以看到是init,参考【玩转RT-Thread】线程管理(详细原理) 当线程刚开始创建还没开始运行时就处于初始状态;在初始状态下,线程不参与调度。此状态在RT-Thread 中的宏定义为...
线程栈大小设置,可以将适当设计较大的线程栈(注意堆栈溢出),然后在FinSH 中用 list_thread 命令查看线程运行的过程中线程所使用的栈的大小,最后最后对栈空间大小加以修改。 线程状态 线程优先级 RT-Thread 最大支持 256 个线程优先级 (0~255),数值越小的优先级越高,0 为最高优先级。
消息队列控制块是 RT-Thread 系统管理消息队列的一种数据结构,由结构体struct rt_messagequeue表示。另外rt_mq_t表示消息队列的句柄,即指向消息队列控制块的指针。 消息队列控制块的数据结构定义如下: struct rt_messagequeue { struct rt_ipc_object parent; /* 继承自 ipc_object 类 */ ...