1.QT中使用pri子工程
2.LiteOS:剖析时间管理模块源代码
QT中使用pri子工程
在QT开发中,子工程的运用有助于提升代码结构的整洁性和重用性。例如,当你创建了一个通用的自定义控件,涉及到头文件h、源文件c、网站外包 源码资源文件qrc、文件png以及工程引用描述文件pro/pri。直接将这些文件分散到新工程中可能导致资源文件混杂,耦合度高。为解决这个问题,可以创建一个名为customedWdt的子工程,将相关文件整合到一个单独文件夹中。
子工程的关键在于其pri文件,它与pro文件类似,用于定义源文件和头文件的查找路径。比如,cpi指标源码$$PWD是QT自动添加的,表示pri文件的当前工作目录。在新工程中,通过在pro文件中简单地包含这个pri文件,如在pitMeter.pro文件中添加一行,即可引用子工程的内容。
虽然使用pri文件可以保持工程结构清晰,但还有其他方法,商店英雄源码如将子工程编译成lib/dll库。这种方式虽然更便于重用,但不利于实时修改源代码,与使用pri子工程相比各有优缺点,开发者可以根据项目需求灵活选择。
LiteOS:剖析时间管理模块源代码
LiteOS的时间管理模块基于系统时钟,主要分为两个部分:一是SysTick中断,为任务调度提供精确的移交源码风险时钟节拍;二是提供一系列与时间相关的服务,如时间转换、统计和延迟功能。
以系统时钟作为基础,时钟管理模块的核心是SysTick定时器,它以周期性的Tick(时钟节拍)为操作系统计时的基本单位。用户可配置每秒Tick数量,如个Tick表示1毫秒。另一个计时单位Cycle,bolll指标源码由系统主时钟频率决定,例如在 MHz的CPU中,每秒有个Cycle。
用户通常以秒或毫秒为时间单位,但操作系统内部以Tick操作。对于系统操作,如任务暂停、延时等,时间管理模块负责Tick与秒/毫秒之间的转换。源代码可以在LiteOS开源站点获取,如los_tick.h、los_tick_pri.h和los_tick.c等。
在源代码剖析中,我们以STMFIDiscovery板为例,首先介绍时间管理的初始化和启动过程。它依赖于系统时钟配置和每秒Tick数量的设置。在系统启动时,会进行硬件和时钟配置,然后通过OsTickInit()函数初始化时间管理,启动Tick中断,以及调用OsTickHandler()处理Tick中断。
常用的时间管理功能包括时间转换(如毫秒到Tick和Tick到毫秒)、统计(如Cycle与Tick的关系和自启动以来的Tick/Cycle计数)以及延时管理(如us和ms等待)。通过这些接口,应用程序可以方便地处理与时间相关的操作。
总的来说,LiteOS的时间管理模块为任务管理和应用程序提供了强大而灵活的时间控制能力。通过理解这些源代码,开发者可以更好地利用这些功能进行高效的时间管理。