chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

armv7 generic timer使用筆記

冬至子 ? 來源:小鱷魚 ? 作者:小鱷魚 ? 2023-09-27 15:10 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

generic timer介紹

armv7-A架構(gòu)中每個CPU核心都包含自己的私有定時器,所有cpu的定時器共享一個System counter, System counter負責(zé)產(chǎn)生計數(shù),傳遞到每個核心的私有定時器,架構(gòu)如下圖所示:

1.jpg

該定時器可以產(chǎn)生中斷,作為系統(tǒng)心跳使用,類似于cortex-M的systick,詳細的中斷號在DDI0471B_gic400_r0p1_trm.pdf中有說明,下面PPI中斷號的截圖說明:

1.jpg

gtimer寄存器介紹

armv7-A架構(gòu)中g(shù)eneric timer寄存器如下圖所示:

1.jpg

在ARMv7-A中定義了不同的特權(quán)級別,分別是PL0, PL1, PL2,PL0是普通用戶模式,在PL1、PL2模式下分別有對應(yīng)的定時器。

下面介紹PL1模式下的定時器,也就是svc、FIQ模式下的定時器,rt-thread的宏內(nèi)核版本運行在svc模式下,所以我們著重研究PL1物理定時器的使用。

關(guān)鍵寄存器說明

CNTFRQ寄存器是定時器頻率值,這個需要根據(jù)實際的硬件情況設(shè)置,在全志平臺上是24M,這個必須設(shè)置, 操作寄存器的內(nèi)聯(lián)匯編代碼:

asm volatile("MCR p15, 0 , %0, c14, c0, 0" : : "r" (Rt) : "memory" )

CNTPCT是物理計數(shù)器寄存器,這個寄存器是64位的,寄存器值會一直累加,根據(jù)CNTFRQ寄存器中的頻率進行累加,所以這個值可以作為時間tick來使用,在一些需要簡短的延時場景可以借助這個計數(shù)器。獲取計數(shù)器值的代碼:

uint64_t get_arch_counter(void)
{
uint32_t low=0, high = 0;
asm volatile("mrrc p15, 0, %0, %1, c14"

: "=r" (low), "=r" (high)
: "memory");
return (((uint64_t)high)<<32
}

CNTP_TVAL寄存器, 這個寄存器一般在開啟gtimer的中斷時使用。

寫入CNTP_TVAL寄存器時,硬件會自動把該值加上System Counter的值,一并寫入CNTP_CVAL寄存器中,作為下一次中斷的時基。內(nèi)聯(lián)匯編偽代碼如下:

asm volatile("MCR p15, 0 , %0, c14, c2, 0" : : "r" (Rt) : "memory" )

特別說明

CNTP_CVAL = CNTP_TVAL + System Counter。

CNTP_CVAL寄存器,該寄存器是比較寄存器,當System Counter的值大于等于CNTP_CVAL的值時產(chǎn)生中斷,如果需要改寫此寄存器的值可以,通過寫入CNTP_TVAL來實現(xiàn),避免讀改寫寄存器的繁瑣操作。

CNTP_CTL是PL1物理定時器的控制寄存器, 操作的內(nèi)聯(lián)匯編代碼如下:

asm volatile("MCR p15, 0 , %0, c14, c2,

CNTP_CTL寄存器控制位說明:

1.jpg

其中bit0負責(zé)使能定時器,bit1是否打開中斷信號。

PL1物理定時器的中斷號,在全志平臺是29,其他CPU平臺待驗證。

詳細gtimer操作代碼可以參考rt-thread源碼目錄中l(wèi)ibcpu->cortex-a中的gtimer.c文件。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 計數(shù)器
    +關(guān)注

    關(guān)注

    32

    文章

    2316

    瀏覽量

    98196
  • ARM處理器
    +關(guān)注

    關(guān)注

    6

    文章

    361

    瀏覽量

    43291
  • 定時器
    +關(guān)注

    關(guān)注

    23

    文章

    3368

    瀏覽量

    123659
  • 控制寄存器
    +關(guān)注

    關(guān)注

    0

    文章

    34

    瀏覽量

    11806
  • RT-Thread
    +關(guān)注

    關(guān)注

    32

    文章

    1614

    瀏覽量

    44889
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    芯??萍紤?yīng)用筆記:CS32F0XX TIMER外設(shè)模塊指導(dǎo)

    紹的特定用戶示例做了工作原理與相關(guān)代碼介紹, 以方便用戶快速移。本應(yīng)用筆記分為四部分:定時器特性概述、基本定時器功能介紹、高級定時器功能介紹、特定場景應(yīng)用示例。*附件:應(yīng)用筆記:CS32F0XX TIMER外設(shè)模塊指導(dǎo).pdf
    發(fā)表于 05-16 10:52

    arm7 armv7 cortexm3它們是什么關(guān)系請問?

    arm7 armv7 cortexm3它們是什么關(guān)系請問?
    發(fā)表于 11-15 21:21

    Armv8-M應(yīng)用筆記上使用TrustZone

    本應(yīng)用筆記介紹CMSIS和MDK中可用的功能,以利用ARMv8-M體系結(jié)構(gòu)中的安全域和非安全域。它包含幾個編程示例,其中包括一個RTOS應(yīng)用程序,該應(yīng)用程序顯示了非安全線程執(zhí)行與ARMv8-M系統(tǒng)安全域提供的庫之間的交互。
    發(fā)表于 05-11 13:26

    基于ARMv7架構(gòu)的Cortex系列

    基于ARMv7架構(gòu)的Cortex系列由ARM公司在2006年推出,Cortex系列的推出滿足人們對性能日漸復(fù)雜的設(shè)計要求,根據(jù)不同需求,Cortex系列共三個不同的子系列...
    發(fā)表于 08-09 06:37

    Cortex-A53使用AArch32 Kernel,可以直接使用ARMv7的所支持的CPU嗎?

    CA53 run 32bit linux kernel, 發(fā)現(xiàn)arch/arm/kernel/perf_event_v7.c 只支持ARMv7 的 ca17, ca15, ca12, ca9
    發(fā)表于 08-29 14:11

    請問怎么理解ARMv7的Secure和Non-secure狀態(tài)

    我在看ARMv7異常部分,看到Vector tables發(fā)現(xiàn)和以前不一樣了,有Secure和Non-secure狀態(tài)(還有Hyp和Monitor),請問怎么理解這兩種狀態(tài)?讀那個寄存器可以知道當前ARM處于哪種狀態(tài)?
    發(fā)表于 09-01 15:46

    Armv7Armv8系統(tǒng)中跟蹤的高級視圖詳解

    本指南主要介紹Armv7系統(tǒng)和Armv8系統(tǒng)中跟蹤的高級視圖,最高可達Armv8.4版本。 該指南涵蓋: ?跟蹤是什么以及如何使用 ?跟蹤體系結(jié)構(gòu)是如何定義的,以及它如何映射到不同的跟蹤組件實現(xiàn) ?在Arm系統(tǒng)中可以看到哪些跟蹤
    發(fā)表于 08-02 06:11

    如何將軟件應(yīng)用程序從ARMv5遷移到ARMv7-A/R

    5。 本應(yīng)用筆記還假設(shè)您具有ARMv5的軟件開發(fā)經(jīng)驗。 假設(shè)主目標平臺是圍繞ARMv7-A處理器構(gòu)建的。 由于ARMv7-A和ARMv7-R
    發(fā)表于 08-29 06:51

    ARMv7的Cortex系列微處理器技術(shù)特點

    ARMv7的Cortex系列微處理器 隨著嵌入式技術(shù)應(yīng)用領(lǐng)域的不斷擴展,對嵌入式系統(tǒng)的要求越來越高,而作為嵌入式系統(tǒng)核心的微處理器也面臨日益嚴竣的挑
    發(fā)表于 10-17 09:17 ?4127次閱讀
    <b class='flag-5'>ARMv7</b>的Cortex系列微處理器技術(shù)特點

    ARMv7ARMv7的體系結(jié)構(gòu)參考手冊免費下載

    ARM? Architecture Reference Manual ARMv7-A and ARMv7-R edition
    發(fā)表于 09-28 08:00 ?30次下載
    <b class='flag-5'>ARMv7</b>和<b class='flag-5'>ARMv7</b>的體系結(jié)構(gòu)參考手冊免費下載

    ES7P1751應(yīng)用筆記

    電子發(fā)燒友網(wǎng)站提供《ES7P1751應(yīng)用筆記.pdf》資料免費下載
    發(fā)表于 09-22 10:58 ?0次下載
    ES<b class='flag-5'>7</b>P1751應(yīng)<b class='flag-5'>用筆記</b>

    HR7P154應(yīng)用筆記

    電子發(fā)燒友網(wǎng)站提供《HR7P154應(yīng)用筆記.zip》資料免費下載
    發(fā)表于 09-22 10:13 ?0次下載
    HR<b class='flag-5'>7</b>P154應(yīng)<b class='flag-5'>用筆記</b>

    ARMv7-A工作模式介紹

    TF-A 一開始是為 ARMv8 準備的,ARMv8 最突出的特點就是支持 64 位指令,但是為了兼容原來的 ARMv7,ARMv8提供了兩種指令集:AAarch64 和 AArch3
    的頭像 發(fā)表于 09-11 16:31 ?1870次閱讀
    <b class='flag-5'>ARMv7</b>-A工作模式介紹

    HK32MCU應(yīng)用筆記(十六)| HK32F103xC/D/E-Timer的應(yīng)用及注意事項

    HK32MCU應(yīng)用筆記(十六)| HK32F103xC/D/E-Timer的應(yīng)用及注意事項
    的頭像 發(fā)表于 09-18 10:58 ?1728次閱讀

    ARMv7安全引導(dǎo)的過程

    對于安全引導(dǎo)功能的實現(xiàn)和驗證過程各家芯片公司的方案都不一樣,這是由該芯片的啟動流程以及啟動所需鏡像文件來決定的,但都會遵循鏈式驗簽啟動的原則。 ARMv7架構(gòu)并沒有使用ATF,系統(tǒng)的啟動流程與以前
    的頭像 發(fā)表于 11-07 15:25 ?1809次閱讀
    <b class='flag-5'>ARMv7</b>安全引導(dǎo)的過程