网站设计是什么意思,重庆公司地址,自己做网站开发,视频网站开发书籍写在前面#xff1a; 由于时间的不足与学习的碎片化#xff0c;写博客变得有些奢侈。 但是对于记录学习#xff08;忘了以后能快速复习#xff09;的渴望一天天变得强烈。 既然如此 不如以天为单位#xff0c;以时间为顺序#xff0c;仅仅将博客当做一个知识学习的目录 由于时间的不足与学习的碎片化写博客变得有些奢侈。 但是对于记录学习忘了以后能快速复习的渴望一天天变得强烈。 既然如此 不如以天为单位以时间为顺序仅仅将博客当做一个知识学习的目录记录笔者认为最通俗、最有帮助的资料并尽量总结几句话指明本质以便于日后搜索起来更加容易。 标题的结构如下“类型”“知识点”——“简短的解释” 部分内容由于保密协议无法上传。 点击此处进入学习日记的总目录 2024.05.07UCOSIII第六十一节User文件夹函数概览uCOS-III-Source文件夹第七部分 六十七、UCOSIIIUser文件夹函数概览uCOS-III-Source文件夹第七部分5、uCOS-III文件夹Source文件夹os_tick.c文件OS_TickTaskOS_TickTaskInitOS_TickListInitOS_TickListInsertOS_TickListRemoveOS_TickListResetPeakOS_TickListUpdate os_time.c文件OSTimeDlyOSTimeDlyHMSMOSTimeDlyResumeOSTimeGetOSTimeSetOSTimeTick os_tmr.c文件OSTmrCreateOSTmrDelOSTmrRemainGetOSTmrStartOSTmrStateGetOSTmrStopOS_TmrClrOS_TmrDbgListAdd 和 OS_TmrDbgListRemoveOS_TmrInitOS_TmrLinkOS_TmrResetPeakOS_TmrUnlinkOS_TmrTask os_type.h文件os_var.c文件 六十七、UCOSIIIUser文件夹函数概览uCOS-III-Source文件夹第七部分
5、uCOS-III文件夹 Source文件夹
这些文件通常是 Micrium OS (UC/OS-III) 内核的核心文件提供了操作系统的各种基本功能和特性。
os_tick.c文件
os_tick.c 实现了 UC/OS-III 内核中的系统时钟节拍功能。 包括了时钟节拍计数器的初始化、更新、中断处理等操作的具体实现。 时钟节拍用于系统的时间管理它确定了系统的时间分辨率和任务调度的粒度是实现实时多任务调度的基础。
OS_TickTask
功能这个函数是时钟任务它不断地等待来自时基中断的信号当接收到信号后更新任务的等待时间以便调度器可以及时地调度任务。参数这个函数没有外部参数但是在函数内部使用了局部变量p_arg用于预防编译警告但实际上没有被使用。其他 通过调用OSTaskSemPend等待来自时基中断的信号。 如果接收到信号且操作系统正在运行则调用OS_TickListUpdate更新所有任务的等待时间。
OS_TickTaskInit
功能初始化时钟任务。参数这个函数接收一个指向错误码的指针p_err用于返回错误类型。其他 设置全局变量OSTickCtr为0清除时钟计数器。 调用OS_TickListInit初始化时钟列表。 创建时钟任务分配任务控制块和堆栈。
OS_TickListInit
功能初始化时钟列表。参数这个函数没有参数。其他 遍历时钟轮中的所有刻度将每个刻度的任务指针设置为NULL以及元素数目初始化为0。
OS_TickListInsert
功能将任务插入时钟列表中以便在指定时间后调度任务。参数 p_tcb指向任务控制块的指针。 time指定的时间。 opt选项用于指定如何计算时间。 p_err返回错误类型的指针。其他 根据指定的时间和选项计算任务的匹配点和剩余等待时间。 根据任务的匹配点确定插入到哪个时钟轮的刻度中。 将任务插入到指定刻度的任务链表中并更新任务之间的关系同时更新该刻度的元素数目。
OS_TickListRemove
功能从时钟列表中移除任务。参数这个函数接收一个指向任务控制块的指针p_tcb。其他 根据任务的指针获取其所在的时钟节拍列表。 如果任务确实在时钟节拍列表中则将其从列表中移除并更新任务之间的关系。 清空任务的延时等待时间和相关的指针将其从时钟节拍列表中移除并将该节拍列表中的元素数目减一。
OS_TickListResetPeak
功能重置时钟列表中每个刻度的峰值检测器。参数这个函数没有参数。其他 遍历时钟轮中的所有刻度将每个刻度的峰值检测器重置为0。
OS_TickListUpdate
功能更新时钟列表处理等待超时或延时到期的任务。参数这个函数没有参数。其他 获取当前时间戳增加时钟节拍计数器计算当前所在的时钟节拍列表。 遍历时钟节拍列表中的任务根据任务的状态进行相应处理 如果任务处于延时状态检查任务是否已经到期如果到期则将任务状态设置为就绪状态并从列表中移除。 如果任务处于有期限等待状态检查任务是否已经到期如果到期则将任务状态设置为就绪状态并从列表中移除。 如果任务处于延时被挂起状态或有期限等待被挂起状态检查任务是否已经到期如果到期则将任务状态设置为被挂起状态并从列表中移除。 更新任务的剩余等待时间并记录任务等待的时间戳。 根据执行时间更新最大运行时间。 退出临界段。
os_time.c文件
os_time.c 实现了 UC/OS-III 内核中的时间管理功能。 包括了系统时钟的初始化、获取当前系统时间、延时等操作的具体实现。 时间管理模块用于处理系统的时间相关功能如延时、定时等确保任务按照预定的时间顺序执行。
OSTimeDly
void OSTimeDly(OS_TICK dly, OS_OPT opt, OS_ERR *p_err) 这个函数的作用是让当前任务延时一段时间。
参数包括 dly: 延时的时钟节拍数。 opt: 选项决定延时的类型。 p_err: 返回错误类型的指针。 在函数的实现中首先对参数进行了检查包括检查是否在中断中调用、是否任务被锁、选项是否合法等。然后根据选项类型执行相应的延时操作最后将当前任务从就绪列表移除插入到延时列表中然后执行任务调度。
OSTimeDlyHMSM
void OSTimeDlyHMSM(CPU_INT16U hours, CPU_INT16U minutes, CPU_INT16U seconds, CPU_INT32U milli, OS_OPT opt, OS_ERR *p_err) 这个函数的作用和 OSTimeDly 类似但是参数更具体化可以直接指定时、分、秒、毫秒来进行延时。
在函数的实现中首先对参数进行了检查包括检查是否在中断中调用、是否任务被锁、选项是否合法等。然后根据选项类型计算延时的时钟节拍数最后执行延时操作。
OSTimeDlyResume
void OSTimeDlyResume(OS_TCB *p_tcb, OS_ERR *p_err) 这个函数的作用是终止一个延时的任务使其立即变为就绪状态。
参数包括 p_tcb: 要终止延时的任务控制块。 p_err: 返回错误类型的指针。 在函数的实现中首先对参数进行了检查包括检查任务是否为空、是否在中断中调用等。然后根据任务的状态进行不同的处理如果任务处于延时状态则将其从延时列表中移除并插入到就绪列表中最后执行任务调度。
OSTimeGet
OS_TICK OSTimeGet(OS_ERR *p_err)
参数 p_err: 一个指向 OS_ERR 类型的指针用于返回错误码如果没有错误则为 OS_ERR_NONE。返回值 OS_TICK: 当前的时钟节拍计数值。
OSTimeSet
void OSTimeSet(OS_TICK ticks, OS_ERR *p_err)
参数 ticks: 要设置的时钟节拍计数值。 p_err: 一个指向 OS_ERR 类型的指针用于返回错误码如果没有错误则为 OS_ERR_NONE。返回值 无void。
OSTimeTick
void OSTimeTick(void) 参数 无。 返回值 无void。 OSTimeTick函数的逻辑解释 OSTimeTick 函数用于处理系统的时钟节拍事件。 首先调用 OSTimeTickHook 函数这是一个用户可定义的钩子函数可以用于在时钟节拍到来时执行特定的操作。 然后根据系统配置可能会执行以下操作 如果启用了中断发送延迟OS_CFG_ISR_POST_DEFERRED_EN 0u则将任务就绪信息发送到中断队列中稍后由中断服务例程处理。 如果禁用了中断发送延迟则直接将任务就绪信息发送给时钟节拍任务OSTickTask。 如果启用了时间片轮转调度OS_CFG_SCHED_ROUND_ROBIN_EN 0u则检查当前任务的时间片是否耗尽如果是则切换到同优先级的其他任务运行。 如果启用了软件定时器OS_CFG_TMR_EN 0u则更新软件定时器的计数器如果计数器减至0则发送信号给软件定时器任务OSTmrTask。
os_tmr.c文件
os_tmr.c 实现了 UC/OS-III 内核中的定时器功能。 包括了定时器的创建、启动、停止、删除等操作的具体实现。 定时器用于在指定的时间间隔内执行特定的任务或事件是实现系统定时功能的重要组成部分。
OSTmrCreate
此函数用于创建定时器。它接受多个参数包括定时器控制块指针 p_tmr、定时器名称指针 p_name、初始延迟时间 dly、周期时间 period、选项 opt、定时器到期时的回调函数指针 p_callback 和传递给回调函数的参数指针 p_callback_arg。函数将指定的参数值写入定时器控制块中并根据指定的选项进行不同的操作。如果函数执行成功将错误类型指针 p_err 设置为 OS_ERR_NONE否则设置为相应的错误类型。
OSTmrDel
此函数用于删除定时器。它接受定时器控制块指针 p_tmr 和错误类型指针 p_err 作为参数。函数首先进行参数检查然后根据定时器的状态进行相应的处理包括从定时器链表中移除定时器、清除定时器的状态并解锁调度器。如果函数执行成功将错误类型指针 p_err 设置为 OS_ERR_NONE否则设置为相应的错误类型。
OSTmrRemainGet
此函数用于获取定时器剩余时间。它接受定时器控制块指针 p_tmr 和错误类型指针 p_err 作为参数。函数根据定时器的状态计算定时器剩余时间并返回该值。如果函数执行成功将错误类型指针 p_err 设置为 OS_ERR_NONE否则设置为相应的错误类型。
OSTmrStart
此函数用于启动定时器。它接受定时器控制块指针 p_tmr 和错误类型指针 p_err 作为参数。函数根据定时器的状态进行相应的处理包括从定时器链表中移除定时器并重新插入到定时器链表中。如果函数执行成功将错误类型指针 p_err 设置为 OS_ERR_NONE否则设置为相应的错误类型。
OSTmrStateGet
此函数用于获取定时器的状态。它接受定时器控制块指针 p_tmr 和错误类型指针 p_err 作为参数。函数首先进行参数检查然后获取定时器的状态并根据状态设置错误类型。最后返回定时器的状态。
OSTmrStop
此函数用于停止定时器。它接受定时器控制块指针 p_tmr、选项 opt、传递给回调函数的新参数 p_callback_arg 和错误类型指针 p_err 作为参数。函数根据定时器的状态和选项进行相应的处理包括从定时器链表中移除定时器、执行回调函数等。最后返回执行结果。
OS_TmrClr
此函数用于清除定时器的字段。它接受定时器控制块指针 p_tmr 作为参数并将定时器的各个字段重置为初始值。
OS_TmrDbgListAdd 和 OS_TmrDbgListRemove
这两个函数用于调试用于将定时器添加到调试链表或从调试链表中移除定时器。调试链表用于跟踪定时器的状态和调试信息。
OS_TmrInit
此函数用于初始化定时器模块。它接受一个指向错误类型的指针 p_err。函数首先进行安全性检查然后根据配置的定时器任务频率计算定时器更新计数器 OSTmrUpdateCnt。接着初始化其他相关的计数器和变量并创建定时器任务。
OS_TmrLink
此函数用于将定时器链接到定时器轮中。它接受一个指向定时器控制块的指针 p_tmr 和一个选项 opt。函数首先确定定时器的匹配时间并根据选项将定时器插入到合适的定时器轮中。
OS_TmrResetPeak
此函数用于重置定时器轮中每个轮子的最大成员数。它简单地将每个轮子的最大成员数设置为零。
OS_TmrUnlink
此函数用于将定时器从定时器轮中解除链接。它接受一个指向定时器控制块的指针 p_tmr。函数首先根据定时器的匹配时间确定定时器所在的轮子然后将定时器从轮子中移除。
OS_TmrTask
此函数是定时器任务的主要函数。它接受一个指向参数的指针该参数当前未使用。函数在一个循环中等待定时器任务信号然后锁定调度器并更新定时器轮中的定时器状态。在每次循环中它会检查定时器是否到期如果到期则执行相应的回调函数并将定时器从定时器轮中移除。
os_type.h文件
os_type.h 是 UC/OS-III 内核中使用的数据类型定义和宏定义的头文件。 定义了 UC/OS-III 内核中使用的各种数据类型、常量和宏以及一些平台相关的配置选项。 提供了对于 UC/OS-III 内核的跨平台支持使得代码可以在不同的处理器架构上移植和使用。
os_var.c文件
os_var.c 实现了 UC/OS-III 内核中的全局变量和内存区域的管理。 包括了全局变量的初始化、内存区域的分配和释放等操作的具体实现。 全局变量和内存区域管理模块用于管理 UC/OS-III 内核中的全局数据和动态内存确保数据的正确性和一致性。