RTT内核对象——对象理解

什么是对象呢?
2018年12月29日
10:45

对象就是数据结构。数组是最简单的数据结构。当然数组类型不仅只是原子类型的还是结构类型的呢。

容器就是一个数组。finsh用获取创建的每个对象的状态并输出调试信息。

内核对象创建时会放到容器中的。
线程的话创建时有两个挂钩,一个挂到就绪表中,一个挂到容器中。

对象对应的结构体就是对象的控制块。

容器保存对象的信息:对象类型、对象列表节点头、对象控制块大小。

用枚举定义对象类型。
容器是个数组,用来保存对象的信息。

对象的前几个成员
2018年12月29日
10:45

是对象信息结构体的成员,用来保存了对象的信息:名字、类型、状态、列表节点头等。
在创建对象的时候会将对象挂到容器中。
一般在线程初始化时:第一,会将对象挂到容器中,通过强制转换线程的控制块为对象信息结构体类型传入到对象初始化函数中去,把对象的信息保存到对象控制块中,同时将对象挂到容器中去。第二,将线程挂到就绪列表中。第三、将线程的信息填满对应线程控制块的结构体的每一个成员。
这12都是通过线程控制块的成员来实现的。

使用所有内核对象之前都要调用它们各自的创建create函数,之后才能使用它,否则不能运行。

你可能感兴趣的:(RTT-RTOS)