Rt-thread入门第一章 全局理解(个人理解)

这里是阅读文档的一些个人总结,因为是个人总结,所以肯定会有偏差

线程是什么呢?

理解为独立的,死循环的,函数个体

操作系统意味着线程切换,线程切换需要做些什么?

需要保存当前寄存器的值,堆栈地址

便于理解:当前寄存器代表内核的通用寄存器和特殊寄存器!!!

保存在哪?

保存在每个线程单独的内存空间(栈区)
可以通过堆栈地址访问到这块栈区

裸机运行时寄存器的值放到了统一的栈空间,这个栈定义在了启动文件,而多线程每个线程都有独立的栈空间

如何跳转到别的线程?

不考虑具体流程,将要跳转的地址设置到PC寄存器中完成跳转,PC寄存器属于内核寄存器中的特殊寄存器

如何跳转回当前的线程?

不考虑具体流程,从栈区取得返回地址,且恢复寄存器的值完成返回
这里值得注意的是!!!
刚才主动保存的并没有返回地址
因为保存返回地址是由程序执行流程自动触发的,而不需要进行显式的操作

补充

上面聊的并不全面,细品还得看文档,比如文档会聊到线程控制块如何创建,初始化,链表的插入删除,线程调度等

在这个板块以后分享的也只是API的用法,比如线程创建,切换,队列,邮箱,锁的使用

猜你喜欢

转载自blog.csdn.net/lllmeimei/article/details/129763191