启动流程就不必再说了。详情就看熊谱翔的书吧。这里只是说一下对自己来说比较新鲜的地方及所得。
自动初始化机制:
只要在函数定义处通过宏定义的方式进行声明,就会在系统启动过程中被执行。这里当宏理解成开关就可以了,还有其用法,是放在了函数定义处,注意一下就可以,还是比较好理解的,如:
int rt_hw_usart_init(void) /* 串口初始化函数 */
{
. . . . ..
/* 注册串口1 设备 */
rt_hw_serial_register(&serial1, "uart1",
RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX,
uart);
return 0;
}
INIT_BOARD_EXPORT(rt_hw_usart_init); /* 使用组件自动初始化机制 */
内核对象的管理架构,完全是基于面向对象的方法来设计的。两个特点:
1、内核对象包括线程、信号量、互斥量、事件、邮箱、消息队列和定时器、内存池、设备驱动等。对象容器中包含每类内核对象的信息,包括对象类型、大小等。对象容器给每类内核对象分配了一个链表,所有的内核对象都被链接到该链表上。

2、要了解各种类之的继承关系。当然,这里的类指容器。

关于内核移植:主要是针对cotex-M的CPU架构:
准备知识:
M核通用寄存器就不用说了,见下图:

程序状态字寄存器里保存算术与逻辑标志,例如负数标志,零结果标志,溢出标志等等。
中断屏蔽寄存器组控制 Cortex-M 的中断除能。
控制寄存器用来定义特权级别和当前使用哪个堆栈指针。
MSP,适用于中断模式下。PSP适用于多任务状态。
如果是具有

本文深入解析RT-Thread实时操作系统的核心机制,包括自动初始化、内核对象管理、中断处理流程、线程栈初始化、上下文切换以及BSP移植等内容,揭示了RT-Thread在Cortex-M架构上的高效实现策略。
最低0.47元/天 解锁文章
1764

被折叠的 条评论
为什么被折叠?



