网站攻击,如何做商业网站推广,北京一网数据软件有限公司,网站开发岗位名称uCos中的时钟节拍可以基于软中断实现或者基于时钟节拍任务#xff08;但是这个任务要给予很高的优先级#xff09;对于STM32#xff08;Cortex-M3#xff09;来说这个就是SysTick中断0x0000003C当中断发生时调用OS_CPU_SysTickHandler函数#xff0c;这样就提供了系统的时… uCos中的时钟节拍可以基于软中断实现或者基于时钟节拍任务但是这个任务要给予很高的优先级 对于STM32Cortex-M3来说这个就是SysTick中断0x0000003C 当中断发生时调用OS_CPU_SysTickHandler函数 这样就提供了系统的时钟节拍 uCos中扩展的应用都是在HOOK函数中实现的 程序关于Time的调用 首先都是基于OSTime的 其次由于在OSTimeTick函数中预留了OSTimeTickHook()函数 这样可以方便我们在OSTimeTickHook()函数中添加我们自己的代码实现在系统中的调用 由于OSTimeTickHook()函数在OSTimeTick函数中 所以每次Tick时都会调用这个函数所以也就给了我们可以添加每次时钟Tick都被系统 调用的机会。 由于OSTimeTickHook()函数中预留了App_TimeTickHook()函数提供给应用层的程序实现相应的扩充 这样就可以在应用层APP中扩展一些我们想要的功能例如Ctimer函数。 同时函数指针的应用更大程度的扩展了我们可以扩展函数的功能的范围。 在系统启动多任务后 的第一个任务TaskStart中即调用过OSStart()函数后调用OS_CPU_SysTickInit()完成对系统Tick的设定。 在设置Tick的时候是由OS_CPU_SysTickClkFreq函数来获得硬件的时钟频率 通过除以OS_TICKS_PER_SEC得到一个定时中断时间以后每隔一定的时间中断一次。 追踪的过程 App_TimeTickHook()(app.c)--OSTimeTickHook()(os_cpu_c.c)--OSTimeTick()(cpu_core.c) \ --OS_CPU_SysTickHandler()(os_cpu_c.c)--DCD OS_CPU_SysTickHandler(vectors.s) 在追寻代码路径的过程中 沿着最容易看到的代码追踪到它的上一级代码 直到它的最底层实现 这样就可以把与这个相关的系统上的东西都可以了解了。 参考 《嵌入式实时操作系统uC/OS-2》转载于:https://www.cnblogs.com/skl374199080/archive/2013/05/30/3107716.html