- 博客(42)
- 收藏
- 关注
原创 Hooks扩展
Hooks,即钩子函数,用于在某些内核代码中插入一个占位。当执行到该位置时,执行自定义的功能代码,避免直接修改原始的内核代码。在内核外部,填充该函数的实现,不必修改空闲任务的代码。
2025-01-16 21:14:09
599
原创 堆栈使用量测量
起初,任务栈空间内容是不确定的;任务初始化时,将堆栈空间所有内容清0;任务运行后,堆栈内容逐渐地被其他数值覆盖;从堆栈空间末端反向统计0单元数,即堆栈剩余数据
2025-01-16 18:42:28
572
原创 软定时器的删除与状态查询
软定时器的删除:将软定时器从所在列表中移除。定时器状态查询结构:初次启动延后的ticks数、周期定时时的周期tick数、定时回调函数、传递给回调函数的参数、定时器配置参数、定时器状态。
2025-01-15 23:01:44
289
原创 互斥信号量的删除与状态查询
互斥信号量的删除:未发生优先级继承,清空等待队列及互斥信号量所有者(高优先级任务);发生优先级继承,恢复互斥信号量拥有者(低优先级任务)原有的优先级,清空等待队列及互斥信号量所有者(低优先级任务)。互斥信号量查询结构:等待的任务数量、拥有者任务的优先级、继承优先级、当前信号量的拥有者、锁定次数)
2025-01-12 17:44:38
158
原创 互斥信号量的等待与通知
等待互斥信号量(信号量未被占用、信号量被自己占用、信号量被高优先级任务占用、信号量被低优先级任务占用);释放互斥信号量(未发生优先级继承、发生优先级继承)
2025-01-11 23:05:55
292
原创 事件标志组的原理与创建
在事件标志组结构,每个任务均可设置需要等待的事件标志及等待条件。事件标志组保存当前已经发生的事件标志,事件标志初始清零,有事件发生时,对应的位进行置1 或置0操作。扫描等待队列中的所有任务,检查任务的事件标志及等待条件是否满足,满足则将任务从等待队列中移出。
2025-01-05 01:54:30
362
原创 存储块的删除与状态查询
存储块的删除:仅需删除任务列表的所有任务,无需在意空闲存储块。存储块的查询结构:当前存储块的计数、允许的最大计数、每个存储块的大小、当前等待的任务计数。
2024-12-26 20:33:39
489
原创 存储块的获取与释放
获取存储块:有空闲存储块,直接取出空闲块;无空闲存储块,任务进入等待队列。释放存储块:无任务等待,插入到空闲链表;有任务等待,释放等待队列头部的任务。
2024-12-26 18:21:31
298
原创 存储块的原理与创建
设计一个存储块结构,在存储块结构中包含空闲的存储块列表。初始化时根据需求将一个指定的存储空间分割成固定大小的存储块,插入到空闲列表中。任务需要存储块时,从存储空间中获取。在存储块结构中加入事件控制块,用于存放需要获取存储块的任务。当存储空间中没有空闲存储块时,任务等待。
2024-12-26 15:30:21
331
原创 邮箱的清空与删除
邮箱的清空:消息缓冲区重置,读索引和写索引指向缓冲区开头,等待队列不改变。邮箱的删除:在事件控制块中等待队列中的任务移除,不改变消息缓冲区。
2024-12-18 21:00:16
358
原创 邮箱的获取与释放
数组实现环形读写缓冲区:包括缓冲区数组、读索引、写索引。写索引指向下一个空闲的单元,读索引指向第一个可以读取的单元。向缓冲区写消息,写索引前移;当写索引到达数组尾部仍有数据写入,则调转到头部继续写。读索引读取消息,读索引前移;当读索引读到尾部单元后,回到数组头部。优先级高消息写入:在写入时将读索引向相反的位置移动,将优先级高的消息插入。在有任务读取时,立即读取优先级高的消息。
2024-12-17 17:30:47
422
原创 邮箱的原理与创建
消息缓冲区通过一个void *数组实现,通过读索引、写索引的动态调整,使得对该数组的访问呈现出一种“FIFO”或“LIFO”的效果。
2024-12-14 21:16:55
488
原创 计数信号量的获取与释放
信号量的获取:计数器等于0,将任务插入等待队列;计数器大于0,将计数器减1,消耗掉一个资源或事件。信号量的释放:检查计数器是否等于0,以及事件控制块是否有等待任务。有则释放掉一个任务;没有则计数器加1。
2024-12-14 19:23:07
406
原创 计数信号量的原理与创建
信号量就是一个带事件控制的计数器,在其上定义了三个操作:可以被初始化一个非负数;wait操作:若该值为0,则执行操作的任务等待;否则将计数值减1;notify操作:将信号量的值增1后,若该值为非正,则执行操作的任务唤醒。
2024-12-14 17:00:15
440
原创 事件控制块的清空与状态查询
事件控制块的清空:将事件控制块中的所有任务从它的等待队列中移除,再将这些任务插入就绪队列。事件控制块的状态查询:仅需知道事件状态块中有多少个任务需要等待。
2024-12-12 21:43:17
243
原创 双向链表数据结构
双向链表的删除链表中所有结点、链表头部插入结点、链表尾部插入结点、删除链表头部结点、链表指定结点后插入一个新结点、删除链表指定结点
2024-12-08 20:46:40
155
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅