RT-Thread 内核学习笔记 - 内核对象rt_object RT-Thread 内核学习笔记 - 内核对象管理 RT-Thread 内核学习笔记 - 内核对象操作API RT-Thread 内核学习笔记 - 内核对象初始化链表组织方式 RT…
RT-Thread 内核学习笔记 - 内核对象rt_object
RT-Thread 内核学习笔记 - 内核对象管理
RT-Thread 内核学习笔记 - 内核对象操作API
RT-Thread 内核学习笔记 - 内核对象初始化链表组织方式
RT-Thread 内核学习笔记 - 内核对象链表结构深入理解
RT-Thread 内核学习笔记 - 设备模型rt_device的理解
RT-Thread 内核学习笔记 - 理解defunct僵尸线程
一、RT-Thread内核学习
1.1 背景
目的还是学习并熟悉RT-Thread 操作系统。
从最简单的对象管理切入
了解操作系统最基本的组成单位:Object
1.2 内核对象API
内核对象的主要操作方法:内核文件:object.c中实现

1.3 知识点
查看内核文件:object.c,发现的主要的几个知识点
1.4 验证与测试
光看内核代码,不如敲一敲(抄一下)。
可以使用模拟器,写几个测试函数,看看对象操作的流程。
测试用例如下:
1 | /* RT-Thread 内核对象学习 */ |
msh />obj_test_dump
object init : object size=2
1 | | index | name | flag | type | |
msh />
1 | ``` |
msh />free
1 | total memory: 8388580 |
msh />obj
1 | obj_test_init |
msh />obj_test_cre
msh />obj_test_create hello
obj_name=hello
create obj_name=hello
msh />fre
1 | free |
msh />obj_test_delete hello
find obj_name=hello
delete obj_name=hello
used memory : 5164 /* 【5304】,内存占用恢复 */
总结三
静态初始化的对象,detach(剔除对象管理)后,内存占用不变。
msh />obj_test_init
msh />ob
msh />obj_test_du
object init : object size=7
| 000 | th_05 | 00 | 0x81 |
| 001 | th_04 | 00 | 0x81 |
| 002 | th_03 | 00 | 0x81 |
| 003 | th_02 | 00 | 0x81 |
| 004 | th_01 | 00 | 0x81 |
| 005 | tshell | 00 | 0x01 |
| 006 | tidle0 | 00 | 0x81 |
used memory : 5164
msh />obj_test_deta
msh />obj_test_detach th_04
obj_name=th_04
find obj_name=th_04
detach obj_name=th_04
object init : object size=6
| 001 | th_03 | 00 | 0x81 |
| 002 | th_02 | 00 | 0x81 |
| 003 | th_01 | 00 | 0x81 |
| 004 | tshell | 00 | 0x01 |
| 005 | tidle0 | 00 | 0x81 |
#### 1.6 总结
RT-Thread 内核对象的管理并不复杂
相关的知识点,如链表的初始化、插入、遍历、通过链表指针获取对象指针等比较的重要。
掌握好内核对象的基本操作,为后面学习派生对象如:线程对象、设备对象等,打下基础。
本文标题: RTThread内核学习笔记
发布时间: 2024年01月22日 00:00
最后更新: 2025年12月30日 08:54
原始链接: https://haoxiang.eu.org/e2d62441/
版权声明: 本文著作权归作者所有,均采用CC BY-NC-SA 4.0许可协议,转载请注明出处!

