文章分类 - RT-Thread源码分析
RT-Thread源码分析,记录关键的分析笔记
摘要:spinlock spinlock是死等的锁机制,自旋锁有以下几个特点: 在获取不到锁的时候会自旋等待锁释放,只能有一个进程或者线程能持有自旋锁。 可以在没有获得锁的时候,进入低功耗模式,等待锁释放后被唤醒。 由于spinlock不会睡眠让出CPU控制权,因此可以在中断上下文中使用。 进程上下文 当
阅读全文
摘要:为什么从临界区开始分析呢?因为在RT-Thread的很多代码,比如线程调度、互斥锁、信号量等等,都会使用到临界区,所以要先掌握临界区的实现的原理,再回过头看线程调度、互斥锁这些模块才能更加得心应手。这里提到的临界区资源主要是多线程间共同访问的资源(不可以在中断中访问)。临界区主要提供下面两个函数,本
阅读全文
摘要:这里想通过RT-Thread在qemu上模拟cortex-a9处理来理清楚arm中断处理的基本的流程。并且想通过qemu来看下底层GIC-V2的使用以及在中断处理的软硬件交互。 介绍中断初始化包括中断向量表的配置、GIC的初始化 通过qemu+GDB跟踪timer中断,并以timer中断为例,梳理a
阅读全文
摘要:当调用rt_thread_create创建RT Thread的内核对象时会调用rt_object_allocate函数,rt_object_allocate会根据内核对象的类型,申请内存,初始化内存对象的成员变量,最后把创建的内存对象挂到内核的全局链表上。 内核对象的信息包括: struct rt_
阅读全文

浙公网安备 33010602011771号