次進行編譯,生 成內(nèi)核驅(qū)動模塊;
[0126] 加載單元113,用于獲取目標(biāo)設(shè)備的最高權(quán)限,將內(nèi)核驅(qū)動模塊加載到目標(biāo)設(shè)備 中。
[0127] 優(yōu)選地,處理器還包括:
[0128] 配置單元114,用于配置adb,建立與目標(biāo)設(shè)備的連接;
[0129] 搭建單元115,用于搭建x86平臺下的交叉編譯環(huán)境。
[0130] 優(yōu)選地,目標(biāo)設(shè)備包括:
[0131] 初始化單元120,用于初始化ARM處理器中的CCNT寄存器;
[0132] 設(shè)置單元121,用于設(shè)置禁止CCNT寄存器因溢出而中斷,以及設(shè)置允許所有CCNT 寄存器進行計數(shù);
[0133] 重置單元122,用于重置所有CCNT寄存器的初始值為0 ;
[0134] 執(zhí)行單元123,用于執(zhí)行被測試代碼;
[0135] 讀取單元124,用于讀取執(zhí)行被測試代碼前CCNT寄存器的計數(shù)值,返回第一次時 鐘周期數(shù),以及執(zhí)行被測試代碼后CCNT寄存器的計數(shù)值,返回第二次時鐘周期數(shù);
[0136] 計算單元125,用于計算第二次時鐘周期數(shù)和第一次時鐘周期數(shù)的第一差值,計算 第一差值與CCNT寄存器計數(shù)函數(shù)的執(zhí)行周期數(shù)的第二差值,獲取ARM處理器的主頻,根據(jù) 主頻將第二差值換算為時間,作為測試代碼的執(zhí)行時間長度。
[0137] 優(yōu)選地,上述目標(biāo)設(shè)備還包括:
[0138] 控制單元126,用于控制CCNT寄存器以每個周期為單位進行計數(shù)。
[0139] 以上結(jié)合附圖詳細說明了本發(fā)明的技術(shù)方案,考慮到現(xiàn)有技術(shù)中計時方法存在缺 陷,TSC計數(shù)器只存在于x86平臺的處理器中,在ARM平臺無法使用;看門狗程序進行計時 的精度只能達到微秒級,不能適應(yīng)目前在ARM平臺需要的計時精度。通過本發(fā)明的技術(shù)方 案,可以調(diào)用ARM處理器的CCNT寄存器實現(xiàn)精度為納米級的計時方法。
[0140] 在本發(fā)明中,術(shù)語"第一"、"第二"僅用于描述目的,而不能理解為指示或暗示相對 重要性。
[0141] 以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技 術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修 改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
【主權(quán)項】
1. 一種基于ARM構(gòu)架的納秒級計時方法,其特征在于,包括: S1,根據(jù)目標(biāo)設(shè)備的操作系統(tǒng)內(nèi)核版本,對該內(nèi)核版本對應(yīng)的操作系統(tǒng)內(nèi)核源碼進行 編譯,加載CCNT內(nèi)核模塊,以生成CCNT驅(qū)動模塊,將CCNT驅(qū)動模塊加載到目標(biāo)設(shè)備中; S2,目標(biāo)設(shè)備初始化ARM處理器中的CCNT寄存器,讀取CCNT寄存器的第一次時鐘周期 數(shù),執(zhí)行被測試代碼,讀取CCNT寄存器的第二次時鐘周期數(shù),根據(jù)所述第二次時鐘周期數(shù) 和第一次時鐘周期數(shù)的差值計算被測試代碼的執(zhí)行時間長度。2. 根據(jù)權(quán)利要求1所述基于ARM構(gòu)架的納秒級計時方法,其特征在于,所述步驟S1包 括: S11,確定目標(biāo)設(shè)備的內(nèi)核版本,下載所述內(nèi)核版本對應(yīng)的操作系統(tǒng)內(nèi)核源碼; 512, 獲取目標(biāo)設(shè)備的內(nèi)核配置信息; 513, 根據(jù)所述配置信息,對所述內(nèi)核源碼進行編譯,編譯成功后在內(nèi)核源碼中添加 CCNT內(nèi)核驅(qū)動模塊; 514, 對添加CCNT內(nèi)核驅(qū)動模塊后的內(nèi)核源碼再次進行編譯,生成內(nèi)核驅(qū)動模塊; 515, 獲取目標(biāo)設(shè)備的最高權(quán)限,將所述內(nèi)核驅(qū)動模塊加載到目標(biāo)設(shè)備中。3. 根據(jù)權(quán)利要求2所述基于ARM構(gòu)架的納秒級計時方法,其特征在于,在所述步驟S12 之前還包括: 配置adb,建立與目標(biāo)設(shè)備的連接; 搭建x86平臺下的交叉編譯環(huán)境。4. 根據(jù)權(quán)利要求1所述基于ARM構(gòu)架的納秒級計時方法,其特征在于,所述步驟S2包 括: S21,目標(biāo)設(shè)備初始化ARM處理器中的CCNT寄存器; 522, 設(shè)置禁止CCNT寄存器因溢出而中斷; 523, 設(shè)置允許所有CCNT寄存器進行計數(shù); 524, 重置所有CCNT寄存器的初始值為0 ; 525, 讀取CCNT寄存器的計數(shù)值,返回第一次時鐘周期數(shù); 526, 執(zhí)行被測試代碼,讀取CCNT寄存器的計數(shù)值,返回第二次時鐘周期數(shù); 527, 計算第二次時鐘周期數(shù)和第一次時鐘周期數(shù)的第一差值,計算所述第一差值與所 述CCNT寄存器計數(shù)函數(shù)的執(zhí)行周期數(shù)的第二差值; 528, 獲取ARM處理器的主頻,根據(jù)所述主頻將所述第二差值換算為時間,作為所述測 試代碼的執(zhí)行時間長度。5. 根據(jù)權(quán)利要求4所述基于ARM構(gòu)架的納秒級計時方法,其特征在于,在所述步驟S25 之前還包括: 控制CCNT寄存器以每個周期為單位進行計數(shù)。6. -種基于ARM構(gòu)架的納秒級計時系統(tǒng),其特征在于,包括處理器和目標(biāo)設(shè)備, 所述處理器用于根據(jù)目標(biāo)設(shè)備的操作系統(tǒng)內(nèi)核版本,對該內(nèi)核版本對應(yīng)的操作系統(tǒng)內(nèi) 核源碼進行編譯,加載CCNT內(nèi)核模塊,以生成CCNT驅(qū)動模塊,將CCNT驅(qū)動模塊加載到目標(biāo) 設(shè)備中; 所述目標(biāo)設(shè)備用于初始化ARM處理器中的CCNT寄存器,讀取CCNT寄存器的第一次時 鐘周期數(shù),執(zhí)行被測試代碼,讀取CCNT寄存器的第二次時鐘周期數(shù),根據(jù)所述第二次時鐘 周期數(shù)和第一次時鐘周期數(shù)的差值計算被測試代碼的執(zhí)行時間長度。7. 根據(jù)權(quán)利要求6所述的基于ARM構(gòu)架的納秒級計時系統(tǒng),其特征在于,所述處理器包 括: 下載單元,用于確定目標(biāo)設(shè)備的內(nèi)核版本,下載所述內(nèi)核版本對應(yīng)的操作系統(tǒng)內(nèi)核源 碼; 獲取單元,用于獲取目標(biāo)設(shè)備的內(nèi)核配置信息; 編譯單元,用于根據(jù)所述配置信息,對所述內(nèi)核源碼進行編譯,編譯成功后在內(nèi)核源碼 中添加CCNT內(nèi)核驅(qū)動模塊,以及對添加CCNT內(nèi)核驅(qū)動模塊后的內(nèi)核源碼再次進行編譯,生 成內(nèi)核驅(qū)動模塊; 加載單元,用于獲取目標(biāo)設(shè)備的最高權(quán)限,將所述內(nèi)核驅(qū)動模塊加載到目標(biāo)設(shè)備中。8. 根據(jù)權(quán)利要求7所述的基于ARM構(gòu)架的納秒級計時系統(tǒng),其特征在于,所述處理器還 包括: 配置單元,用于配置adb,建立與目標(biāo)設(shè)備的連接; 搭建單元,用于搭建x86平臺下的交叉編譯環(huán)境。9. 根據(jù)權(quán)利要求6所述的基于ARM構(gòu)架的納秒級計時系統(tǒng),其特征在于,所述目標(biāo)設(shè)備 包括: 初始化單元,用于初始化ARM處理器中的CCNT寄存器; 設(shè)置單元,用于設(shè)置禁止CCNT寄存器因溢出而中斷,以及設(shè)置允許所有CCNT寄存器進 行計數(shù); 重置單元,用于重置所有CCNT寄存器的初始值為0 ; 執(zhí)行單元,用于執(zhí)行被測試代碼; 讀取單元,用于讀取執(zhí)行被測試代碼前CCNT寄存器的計數(shù)值,返回第一次時鐘周期 數(shù),以及執(zhí)行被測試代碼后CCNT寄存器的計數(shù)值,返回第二次時鐘周期數(shù); 計算單元,用于計算第二次時鐘周期數(shù)和第一次時鐘周期數(shù)的第一差值,計算所述第 一差值與所述CCNT寄存器計數(shù)函數(shù)的執(zhí)行周期數(shù)的第二差值,獲取ARM處理器的主頻,根 據(jù)所述主頻將所述第二差值換算為時間,作為所述測試代碼的執(zhí)行時間長度。10. 根據(jù)權(quán)利要求9所述的基于ARM構(gòu)架的納秒級計時系統(tǒng),其特征在于,所述目標(biāo)設(shè) 備還包括: 控制單元,用于控制CCNT寄存器以每個周期為單位進行計數(shù)。
【專利摘要】本發(fā)明涉及一種基于ARM構(gòu)架的納秒級計時方法和系統(tǒng),該方法包括:S1,根據(jù)目標(biāo)設(shè)備的操作系統(tǒng)內(nèi)核版本,對該內(nèi)核版本對應(yīng)的操作系統(tǒng)內(nèi)核源碼進行編譯,加載CCNT內(nèi)核模塊,以生成CCNT驅(qū)動模塊,將CCNT驅(qū)動模塊加載到目標(biāo)設(shè)備中;S2,目標(biāo)設(shè)備初始化ARM處理器中的CCNT寄存器,讀取CCNT寄存器的第一次時鐘周期數(shù),執(zhí)行被測試代碼,讀取CCNT寄存器的第二次時鐘周期數(shù),根據(jù)所述第二次時鐘周期數(shù)和第一次時鐘周期數(shù)的差值計算被測試代碼的執(zhí)行時間長度。根據(jù)本發(fā)明的技術(shù)方案,可以調(diào)用ARM處理器的CCNT寄存器實現(xiàn)精度為納米級的計時方法。
【IPC分類】G06F9/445
【公開號】CN105404535
【申請?zhí)枴緾N201510857169
【發(fā)明人】陳財森, 向陽霞, 蔡紅柳, 鄧柳于勤, 于茜
【申請人】中國人民解放軍裝甲兵工程學(xué)院
【公開日】2016年3月16日
【申請日】2015年11月30日