摘要: 在RT-Thread中,每个线程都内置一个定时器,当线程需要延时的时候,先将线程挂起,然后内置的定时器将会启动,并且将定时器插入到一个全局的定时器列表rt_timer_list,这个全局的系统定时器列表维护着一条双向链表,每个节点代表了正在延时的线程的定时器,节点按照延时时间大小做升序排列。当每次时 阅读全文
posted @ 2021-07-03 15:15 创造卓越人生 阅读(595) 评论(0) 推荐(0) 编辑
摘要: 1、就绪列表 RT-Thread 要支持多优先级,需要靠就绪列表的支持,从代码上看,就绪列表由两个在schedule.c文件定义的全局变量组成,一个是线程就绪优先级组rt_thread_ready_priority_group,另一个是线程优先级表rt_thread_priority_table[R 阅读全文
posted @ 2021-07-03 10:13 创造卓越人生 阅读(185) 评论(0) 推荐(0) 编辑
摘要: RTOS中的延时叫阻塞延时,即线程需要延时的时候,线程会放弃CPU的使用权,CPU可以去干其他事情,当线程延时时间到,重新获取CPU使用权,线程继续运行,这样就充分利用了CPU的使用权,而不是刚等着。 当线程需要延时,CPU进入阻塞状态,那CPU又去干什么事情了?如果没有其它线程可以运行,RTOS都 阅读全文
posted @ 2021-07-03 07:29 创造卓越人生 阅读(1912) 评论(0) 推荐(0) 编辑
摘要: 1、什么是对象 在RT-Thread,所有的数据结构都成为对象。 其中线程,信号量、互斥量、事件、邮箱、消息队列、内存堆、内存池、设备和定时器在rtdef.h中有明显的枚举定义,即为每个对象打上一个数字标签。 enum rt_object_class_type { RT_Object_Class_T 阅读全文
posted @ 2021-07-02 18:10 创造卓越人生 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 1、什么是临界段 临界段就是一段在执行的时候不能被中断的代码段。在RT-Thread里面这个临界段最常出现的就是对全局变量的操作。 那么什么情况下临界段会被打断? 一个是系统调度,另一个是外部中断。在RT-Thread里面,系统调度,最终也是产生PendSV中断,在PendSV Handler里面实 阅读全文
posted @ 2021-07-01 16:36 创造卓越人生 阅读(479) 评论(0) 推荐(0) 编辑
摘要: 1、定义就绪列表 线程创建好之后,我们需要把线程添加到就绪列表里面,表示线程已经就绪,系统随时可以调度。就绪列表在schedule.c中定义。 /* 线程就绪列表 */ rt_list_t rt_thread_priority_table[RT_THREAD_PRIORITY_MAX]; 就绪列表实 阅读全文
posted @ 2021-06-30 17:17 创造卓越人生 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 一、链表 1、在双向链表表头后面插入一个节点 : 第1步:l->next指向的节点的prev指向n(比如NODE1的next是指向NODE2,NODE2的prev指向n) 第2步:n的next成员指向l->next。 第3步:l->next 指向n。 第4步:n->prev指向l。 2、在双向链表表 阅读全文
posted @ 2021-06-29 18:36 创造卓越人生 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 1、定义线程栈 在多线程系统中,每个线程都是独立的,互不干扰的,所以要为每个线程都分配独立的栈空间,每个栈空间通常是预先定义好的全局数组,也可以是动态分配的一段内存空间,但他们都存于RAM中。 在多线程系统中,有多少个线程就需要定义多少个线程栈。 1 ALIGN(RT_ALIGN_SIZE)// ( 阅读全文
posted @ 2021-06-28 22:05 创造卓越人生 阅读(866) 评论(0) 推荐(0) 编辑
摘要: 1、感谢之言 很感谢参考了两位大佬的博客,成功的把threadx移植到stm32f407zgt6探索者开发板上。 附上链接:1、ThreadX操作系统在MDK中的移植方法(2021.06.06更新)_Mculover666的博客(嵌入式)-CSDN博客_threadx移植 2、stm32移植thre 阅读全文
posted @ 2021-06-27 21:09 创造卓越人生 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 基于是stm32f407zgt6 的hal库理解。 说明一下用stm32cube配置后的几个重要的文件。 阅读全文
posted @ 2021-06-27 17:05 创造卓越人生 阅读(234) 评论(0) 推荐(0) 编辑