www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導讀]AT91RM9200平臺的輔助時鐘研究

引 言
    在VxWorlks中,定時器機制的實現(xiàn)是建立在時鐘基礎(chǔ)之上的??筛鶕?jù)不同的要求選用不同的定時機制,如taskDelay()、WatchDog、輔助時鐘。前兩種定時都是基于系統(tǒng)時鐘的。
    taskDelay()是最簡單的延時方法。它的單位是tick,所以其延時精度并不高,但對于延時10 ms以上的系統(tǒng)足夠了。利用taskDelay(),可以將調(diào)用的任務從就緒態(tài)轉(zhuǎn)到睡眠態(tài),但是不能用于中斷服務程序中。另外,可以通過調(diào)用taskDelay(0),將CPU交給系統(tǒng)中其他相同優(yōu)先級的任務。
    看門狗定時器作為系統(tǒng)時鐘中斷服務程序的一部分來維護。因此,與看門狗定時器相聯(lián)系的函數(shù)運行在系統(tǒng)時鐘中斷級,延時單位為tick。如果應用程序需要多個看門狗函數(shù),則可使用wdCreate()為每個需求產(chǎn)生獨立的看門狗ID,因為對于給定的看門狗ID,只有最近的wdStart()有效。利用看門狗定時器,調(diào)用的任務不會被阻塞,因為wdStart()調(diào)用是立即返回的。但它也一般只適用于延時10ms以上的系統(tǒng)。
    如果在實際時需要更高精度的定時(如1 ms),那么采用輔助時鐘就是非??扇〉囊环N方法。一般在VxWorks系統(tǒng)的BSP中,都沒有配置輔助時鐘,本文詳細介紹輔助時鐘的配置及使用方法,以便在實際中靈活運用。


1 AT91RM9200工業(yè)平臺的時鐘和定時器
    本文的研究是基于AT91RM9200工業(yè)平臺的,因此首先需要對此平臺下的時鐘及定時器進行介紹。
    AT91RM9200提供了2個3通道16位定時器/計數(shù)器(TC)。3個通道雖然獨立,但操作相同,每個通道均為用戶可配置,包括3個外部時鐘輸入(XC0、XCl或XC2),5個內(nèi)部時鐘輸入(TIMER_CLOCKl、TIMER_CLOCK2、TIMER CLOCK3、TIMER_CL0CK4、TIMER_CLOCK5),以及2個可由用戶配置的多功能輸入/輸出信號。另外,每個通道可工作在兩種不同模式下,即捕獲模式和波形模式。其中,捕獲模式提供信號測量,波形模式用來產(chǎn)生波形,可由TC通道模式寄存器的WAVE位編程設(shè)定。定時器/計數(shù)器框圖如圖1所示。

    其中,如果選擇通道信號時,XCO、XCl、XC2表示3個外部時鐘輸入;TIOA、TIOB表示作用于每個通道的2個多功能輸入/輸出信號;INT表示中斷信號輸出;SYNC表示同步輸入信號。如果選擇塊信號時,TCLKO、TCLKl、TCLK2表示3個外部時鐘輸入;TIOAO~TIOA2,表示通道0~2的TIOA信號,TIOB0~TIOB2表示通道0~2的TI0B信號。
    其中,5個內(nèi)部時鐘輸入與主時鐘(MCK)、慢速時鐘(SLCK)及主時鐘分頻后時鐘相關(guān),如表1所列。

2 在VxWorks中輔助時鐘的配置
   
在VxWorks操作系統(tǒng)中如果要使用輔助時鐘,必須經(jīng)過一定的配置才能使用。首先,需要在Vxworks組件或config.h中進行定義:
    #define INCLUDE_AUX_CLK
    如果不定義,那么輔助時鐘是無法使用的。另外,在sysLib.C的sysHwlnit2函數(shù)中需要進行輔助時鐘的初始化,即中斷連接配置:
(void)intConnect(AUX_TIMER_INT_VEC,sysAuxClkInt,O)
    輔助時鐘和系統(tǒng)時鐘的區(qū)別是:輔助時鐘必須由用戶提供ISR,但不允許在ISR中調(diào)用tickAnnounce(),否則會擾亂系統(tǒng)時鐘的機制。
    輔助時鐘的配置可以按照installDir/target/drv/tim—er/templateTimer.C中的函數(shù)模板來進行修改,在本文中使用的驅(qū)動程序是At91Rm9200timer.c,頭文件為At91Rm9200timer.h。在此文件中進行的修改需要根據(jù)所依賴的具體芯片來進行,即需要參考AT91RM9200芯片數(shù)據(jù)手冊。
    與輔助時鐘相關(guān)的函數(shù)有:sysAuxClkInt()、sysAux—ClkConnect()、sysAuxClkDisable()、sysAuxClkEnable()、sysAuxClkRateGet()和sysAuxClkRateSet()。其中,sysAuxClkRateGet()可以和sysAuxClkRateSet()視為一組。sysAuxClkRateGet()是通過sysAuxClkRateSet()函數(shù)設(shè)定的時鐘頻率進行讀取的,而sysAuxClkRateSet()函數(shù)中時鐘頻率的設(shè)定則受AUX_CLK_RATE_MIN和AUX_CLK_RATE_MAX的限制。這個最大值和最小值需要進行定義,定義的位置可能不同,有的放在eonfig.h中,有的放在bsp.h中,本文的最大值和最小值放在Inte—grator.h中定義。接下來需要重點討論的是sysAux-ClkInt()和sysAuxClkEnabel()這兩個函數(shù)。
    sysAuxClkInt()函數(shù)調(diào)用用戶定義的中斷處理函數(shù),而用戶調(diào)用的中斷處理函數(shù)是由sysAuxClkConnect()函數(shù)來連接的。在調(diào)用中斷處理函數(shù)之前,一定要先進行清除中斷操作,如:
AMBA_TIMER_READ(AMBA_TIMER_T2SR(AMBA_TIMER_BASE),temp);
    不然,CPU將一直陷入中斷,不能做別的事情了。
    其他大量的工作都是放在sysAuxClkEnble()函數(shù)中進行的。根據(jù)AT91RM9200的具體情況,選擇5個內(nèi)部時鐘的其中之一,在此選擇TIMER_CLOCK2;根據(jù)前面所提到的通道概念,選取第2個通道。必須和系統(tǒng)時鐘區(qū)分開,不能同時選擇一個內(nèi)部時鐘和同一個通道。
    首先,需要判斷電源管理對輔助時鐘是否進行了配置,可以查看相關(guān)文件。如果沒有進行配置,則需要如進行如下配置:
    AT9l_SYS→PMC_PCER=l<<AT9lC_ID_TCl;
    其次,必須先對AIC編程,再配置TC。
    然后,需要對具體的寄存器進行控制操作,首先需要選擇內(nèi)部時鐘,如圖2所示。

    對通道模式寄存器進行控制:
    AMBA_TIMER_WRITE(AMBA_TIMER_T2MR(AMBA_TIMER_BASE),TIMER_CLOCK2| TC_CPCTRG);
    通過TCCLKS位選擇第2個內(nèi)部時鐘,并根據(jù)寫入RC寄存器的定時器值進行RC比較觸發(fā)使能。同時,需要對TC通道控制寄存器進行控制,寫入計數(shù)器時鐘使能命令和軟件觸發(fā)命令,如:

AMBA_TIMER_WRITE(AMBA_TIMER_T2CR(AMBA_TIMER_BASE),TC_CLKEN);
AMBA_TIMER_WRITE(AMBA_TIMER_T2CR(AMBA_TIMER_BASE),TC_SWTRG);
    另外,由于采用RC寄存器觸發(fā)使能,因此還需要對TC中斷使能寄存器進行控制,寫入RC比較中斷使能信號,如:
AMBA_TIMER_WRITE(AMBA_TIMER_T2IER(AMBA_TIMER_BASE),TC_CPCS);

    最后,需要執(zhí)行中斷使能操作,如:
AMBA_TIMER_INT_ENABLE(AUX_TIMER_INT_LVL);
    一切配置好后,重新編譯bootroFll和VxWorks鏡像,啟動VxWorks鏡像;然后編寫測試程序進行測試,驗證輔助時鐘是否配置成功。另外,可以通過邏輯分析儀查看輔助時鐘的中斷情況。輔助時鐘驅(qū)動后,在應用程序中可以用sysAuxClkRateSet()函數(shù)動態(tài)設(shè)置系統(tǒng)輔助時鐘每秒的中斷數(shù);sysAuxClkConnect()函數(shù)為系統(tǒng)輔助時鐘中斷指定ISR,并且由sysAuxClkEnable()函數(shù)使能時鐘中斷,去調(diào)用指定的ISR。

結(jié) 語
    VxWorks提供系統(tǒng)輔助時鐘機制的主要目的,是使用戶在系統(tǒng)時鐘之外多一種定時資源選擇,并提供了管理手段。另外,VxWorks的某些輔助調(diào)試工具也可能要求使用系統(tǒng)輔助時鐘。
    輔助時鐘的使用是通過提高節(jié)拍率來實現(xiàn)的,而提高節(jié)拍率意味著時鐘中斷產(chǎn)生得更加頻繁,所以中斷處理程序也會更頻繁地執(zhí)行。如此一來會給整個系統(tǒng)帶來如下好處:
    ①更高的時鐘中斷解析度(resolution)可提高時間驅(qū)動事件的解析度;
    ②提高了時間驅(qū)動事件的準確度(accuracy)。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉