RT-Thread 关于线程的一些理解

  • 2020-9-17
    眼看他起朱楼,眼看他宴宾客,眼看他楼塌了。
    – 孔尚任《桃花扇》
  • 线程控制块是线程切换的核心,通过线程创建 rt_thread_create/线程初始化rt_thread_init函数将线程栈与线程入口函数绑定在线程控制块。
  • 线程切换主要靠的是线程栈,切换时将当时线程运行的数据保存在线程栈,线程恢复时将线程栈的内容再恢复到线程栈中。
    线程栈的内容如下,值得注意的是,运行过程中,R15存储的不一定是入口地址(由于入口函数运行到一半,此时切换的话,线程栈对应到pc寄存器的位置保存的是此时程序运行到的地址)
    (图片来源于 野火书籍)
    RT-Thread 关于线程的一些理解