自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 Hooks扩展

Hooks,即钩子函数,用于在某些内核代码中插入一个占位。当执行到该位置时,执行自定义的功能代码,避免直接修改原始的内核代码。在内核外部,填充该函数的实现,不必修改空闲任务的代码。

2025-01-16 21:14:09 599

原创 内核裁剪

提供一个配置文件,用于修改裁剪相关的配置参数

2025-01-16 20:50:55 212

原创 CPU使用百分比测量

统计单位时间内CPU分别有多少时间在执行应用任务的代码和空闲任务的代码。

2025-01-16 20:21:44 314

原创 堆栈使用量测量

起初,任务栈空间内容是不确定的;任务初始化时,将堆栈空间所有内容清0;任务运行后,堆栈内容逐渐地被其他数值覆盖;从堆栈空间末端反向统计0单元数,即堆栈剩余数据

2025-01-16 18:42:28 572

原创 软定时器的删除与状态查询

软定时器的删除:将软定时器从所在列表中移除。定时器状态查询结构:初次启动延后的ticks数、周期定时时的周期tick数、定时回调函数、传递给回调函数的参数、定时器配置参数、定时器状态。

2025-01-15 23:01:44 289

原创 软定时器的启动与停止

创建一个定时器任务,两个定时器链表,同时还会借助信号量、开关中断对链表访问进行保护。

2025-01-15 22:02:23 381

原创 软定时器的原理与创建

一个任务来管理所有的在指定的时间、以特定的周期触发某种操作的定时需求

2025-01-13 14:29:59 403

原创 互斥信号量的删除与状态查询

互斥信号量的删除:未发生优先级继承,清空等待队列及互斥信号量所有者(高优先级任务);发生优先级继承,恢复互斥信号量拥有者(低优先级任务)原有的优先级,清空等待队列及互斥信号量所有者(低优先级任务)。互斥信号量查询结构:等待的任务数量、拥有者任务的优先级、继承优先级、当前信号量的拥有者、锁定次数)

2025-01-12 17:44:38 158

原创 互斥信号量的等待与通知

等待互斥信号量(信号量未被占用、信号量被自己占用、信号量被高优先级任务占用、信号量被低优先级任务占用);释放互斥信号量(未发生优先级继承、发生优先级继承)

2025-01-11 23:05:55 292

原创 互斥信号量的原理与创建

处理多个任务共享资源的冲突问题。用于嵌套调用的锁定次数计数器;当前已经获取信号量的任务;支持优先级继承的原始优先级。

2025-01-11 19:00:32 365

原创 事件标志组的删除与状态查询

事件标志组的删除:清空等待列表。事件标志组查询结构:当前的事件标志、当前等待的任务计数

2025-01-09 20:11:36 236

原创 事件标志组的等待与通知

事件标志组没有任务等待,设置相应的事件标志;有任务等待,唤醒等待的任务

2025-01-09 19:01:22 463

原创 事件标志组的原理与创建

在事件标志组结构,每个任务均可设置需要等待的事件标志及等待条件。事件标志组保存当前已经发生的事件标志,事件标志初始清零,有事件发生时,对应的位进行置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-19 14:04:56 769

原创 邮箱的清空与删除

邮箱的清空:消息缓冲区重置,读索引和写索引指向缓冲区开头,等待队列不改变。邮箱的删除:在事件控制块中等待队列中的任务移除,不改变消息缓冲区。

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。

2024-12-14 20:28:59 211

原创 计数信号量的获取与释放

信号量的获取:计数器等于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

原创 事件控制块的等待与通知

任务1超时等待一个事件控制块,任务2和3共同等待一个事件控制块,任务4向事件控制块发生信号,通知任务2和任务3

2024-12-12 20:53:31 366

原创 事件控制块的原理与创建

事件控制块两大核心功能:任务进入事件控制块等待、发生事件给控制块恢复任务运行。

2024-12-12 16:49:56 347

原创 任务的状态查询

不直接访问任务结构,而是复制到额外的结构体中。

2024-12-11 18:55:34 282

原创 任务的删除

任务2强制删除任务1,任务4请求删除任务3,任务3中删除自己。

2024-12-11 18:23:22 436

原创 任务的挂起与唤醒

在任务1中挂起任务1自己,在任务2中唤醒任务1。

2024-12-10 17:19:44 259

原创 同优先级时间片运行

构建一个允许多任务具备相同优先级,且同优先级任务间按时间片占用CPU运行的系统。

2024-12-10 13:37:39 388

原创 任务延时队列

将所有需要延时的任务单独放置在一个队列中,每次发生系统节拍时,只需扫描该队列。

2024-12-10 11:50:52 477

原创 双向链表数据结构

双向链表的删除链表中所有结点、链表头部插入结点、链表尾部插入结点、删除链表头部结点、链表指定结点后插入一个新结点、删除链表指定结点

2024-12-08 20:46:40 155

原创 多优先级任务

根据实际应用特点,为任务指定优先级。优先级更高的任务,具备对CPU、事件和资源的优先处理权和占有权。

2024-12-08 18:31:33 254

原创 位图数据结构

位图是一组连续的标志位,每一位用于标识某种状态的有无。

2024-12-07 20:37:21 297

原创 调度锁保护

假设有一全局共享的计数器变量shareCount。在任务1对其自增1,在任务2对其自增1。怎么在不关中断情况下解决写冲突问题?

2024-12-07 19:13:48 196

原创 临界区保护

使用关中断保护临界区

2024-12-07 17:32:46 410

原创 双任务延时原理与空闲任务

提供一个任务延时接口,使得延时过程中可放弃CPU转而运行其它任务,提高CPU利用率。

2024-12-05 19:54:33 463

原创 双任务时间片运行原理

构建一个最小的基于时间片切换的双任务小系统

2024-12-05 12:23:20 318

原创 任务切换的实现

构建最小的两个任务切换运行的小系统。

2024-12-03 19:38:14 416

原创 任务定义与切换原理

任务是什么、任务切换原理、定义一个任务

2024-12-03 14:16:20 292

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除