RT-Thread的时钟管理模块提供系统时钟和定时器功能。系统时钟用于计时和定时,定时器则用于在指定时间后执行特定的任务或回调函数。 3. RT-Thread源码的面向对象设计 RT-Thread内核采用面向对象的设计思想进行设计。虽然C语言本身不支持面向对象编程,但RT-Thread通过结构体和函数指针的方式模拟了面向对象的行为。 例如,RT...
voidrt_system_scheduler_init(void){register rt_base_t offset;rt_scheduler_lock_nest=0;for(offset=0;offset<RT_THREAD_PRIORITY_MAX;offset++){rt_list_init(&rt_thread_priority_table[offset]);}rt_current_priority=RT_THREAD_PRIORITY_MAX-1;rt_current_thread=RT_NULL;/* initialize ready priority ...
PendSV_Handler:/* disable interrupt to protect context switch */MRS R2,PRIMASK//移动特殊寄存器到普通的寄存器 是一种寄存器到寄存器之间的传送指令CPSID I/* get rt_thread_switch_interrupt_flag */LDR R0,=rt_thread_switch_interrupt_flag LDR R1,[R0]CBZ R1,pendsv_exit/* pendsv aLReady handled *...
│ ├── String2UpperServer.hpp // Server端的整个工厂 │ └── threadpool // 线程池、锁、条件变量和消息队列的封装 │ ├── Buffer.hpp │ ├── Condition.hpp │ ├── MutexLock.hpp │ ├── Noncopyable.hpp │ ├── Pthread.hpp │ ├── Task.hpp │ └── Threadpool.hpp ...
rt-thread内核对象 摘要:当调用rt_thread_create创建RT Thread的内核对象时会调用rt_object_allocate函数,rt_object_allocate会根据内核对象的类型,申请内存,初始化内存对象的成员变量,最后把创建的内存对象挂到内核的全局链表上。 内核对象的信息包括: struct rt_阅读全文 ...
在RT-Thread中,系统定时器主要用于管理延时操作、周期性任务和超时处理。它可以通过定时器实现任务的延时、周期性触发任务(如定时采集数据或刷新显示)、以及超时事件的处理。此外,RT-Thread 还支持软定时器,用于在指定时间后触发回调函数,适合处理非实时要求高的任务。系统定时器是确保嵌入式应用中任务按设定时间精度执行...
rt_thread消息队列源码分析 unix早期通信机制中的信号能够传送的信息量有限,管道则只能传送无格式字节流,这远远是不够的。 消息队列(也叫报文队列)客服了这些缺点: 消息队列就是一个消息的链表。 可以把消息看作一个记录,具有特定的格式。 进程可以按照一定的规则向消息队列中添加新消息;另一些进程可以从消息队列中...
作者是RT-Thread纯新手。 需要使用RT-Thread Studio来开发STM32U575VGT6这款芯片。 但是Studio没有对这款芯片的支持选项。 首先参考文章[非官方]偷偷给RT-Thread Studio添加芯片支持,了解到可以手动为RT-Thread添加新MCU选项。 添加新MCU支持需要我们参考学习已有MCU的芯片支持包(Chip_Support_Packages)。、 ...
RT-thread源码移植到STM32F10x和STM32F4xx: 一、源码下载 点击入门->下载 在历史版本里边随便选取一个 会进入百度云盘的下载地址,里边有全部版本的源码。这里下载v2.1.0的稳定版本。 解压后的源码目录结构: 基本内核的移植只需要关心目录-bsp、include、libcpu、