做設(shè)計的素材網(wǎng)站有哪些什么是推廣
目錄
- 一、時間管理
- 1.1、時間接口
- 1.2、代碼分析(待續(xù)...)
- 堅持就有收獲
一、時間管理
- 時間管理以系統(tǒng)時鐘為基礎(chǔ),給應(yīng)用程序提供所有和時間有關(guān)的服務(wù)。
- 系統(tǒng)時鐘是由定時器/計數(shù)器產(chǎn)生的輸出脈沖觸發(fā)中斷產(chǎn)生的,一般定義為整數(shù)或長整數(shù)。輸出脈沖的周期叫做一個“時鐘滴答”。系統(tǒng)時鐘也稱為時標或者Tick。
- 用戶以秒、毫秒為單位計時,而操作系統(tǒng)以Tick為單位計時,當用戶需要對系統(tǒng)進行操作時,例如任務(wù)掛起、延時等,此時需要時間管理模塊對Tick和秒/毫秒進行轉(zhuǎn)換。
- LiteOS-M 內(nèi)核時間管理模塊提供時間轉(zhuǎn)換、統(tǒng)計功能。
時間單位: - Cycle:系統(tǒng)最小的計時單位。Cycle的時長由系統(tǒng)主時鐘頻率決定,系統(tǒng)主時鐘頻率就是每秒鐘的Cycle數(shù)。
- Tick:Tick是操作系統(tǒng)的基本時間單位,由用戶配置的每秒Tick數(shù)決定。
- 時間管理不是單獨的功能模塊,依賴于OS_SYS_CLOCK和LOSCFG_BASE_CORE_TICK_PER_SECOND 兩個配置選項。
源碼定義#define LOSCFG_BASE_CORE_TICK_PER_SECOND (100UL),表示一個Tick 等于千分之一百毫秒也就是十毫秒。
系統(tǒng)的Tick數(shù)在關(guān)中斷的情況下不進行計數(shù),故系統(tǒng)Tick數(shù)不能作為準確時間使用。
配置選項維護在開發(fā)板工程的文件target_config.h。
//例如stm32F4xx board
/*=============================================================================System clock module configuration
=============================================================================*/
#define OS_SYS_CLOCK 168000000 //CPU 主時鐘
#define LOSCFG_BASE_CORE_TICK_PER_SECOND (1000UL) //設(shè)置每秒Tick數(shù)
...
1.1、時間接口
功能類別 | 接口函數(shù) | 描述 |
---|---|---|
los_tick | LOS_MS2Tick | 毫秒轉(zhuǎn)換Tick |
LOS_TickTimerRegister | 重新初始化Tick時鐘 | |
LOS_UDelay | CPU us延時 | |
LOS_MDelay | CPU ms延時 | |
LOS_CurrNanosec | 獲取系統(tǒng)啟動以來的納秒數(shù) | |
OsTickHandler | Tick中斷相應(yīng)函數(shù) | |
OsCpuTick2MS | CPU Tick周期轉(zhuǎn)換毫秒數(shù) | |
OsCpuTick2US | CPU Tick周期轉(zhuǎn)換微秒數(shù) | |
OsCycle2MS | 周期轉(zhuǎn)毫秒數(shù) | |
OsCycle2US | 周期轉(zhuǎn)微秒數(shù) |