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)不再提示

剖析Zynq-7000系列全局定時器(GT)

FPGA開源工作室 ? 來源:ZYNQ ? 作者:小默 ? 2021-06-16 16:49 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

每個 Cortex-A9 處理器都有自己的私有 32 位定時器和 32 位看門狗定時器,兩個處理器共享一個全局 64 位定時器,這些定時器始終以 CPU 頻率 (CPU_3x2x) 的 1/2 計時。

在系統(tǒng)層面,有一個 24 位看門狗定時器和兩個 16 位三重定時器/計數(shù)器。

系統(tǒng)看門狗定時器的時鐘頻率為 CPU 頻率 (CPU_1x) 的 1/4 或 1/6,或者可以由來自 MIO 引腳或來自 PL 的外部信號提供時鐘。

兩個三重定時器/計數(shù)器始終以 CPU 頻率 (CPU_1x) 的 1/4 或 1/6 計時,用于計算來自 MIO 引腳或來自 PL 的信號脈沖的寬度。

下圖顯示了系統(tǒng)定時器的關(guān)系

本文重點說一下全局定時器。

全局定時器

全局定時器是一個 64 位的具有自動遞增功能的遞增計數(shù)器。

全局定時器是內(nèi)存映射到與私有定時器相同的地址空間。

所有 Cortex-A9 處理器都可以訪問全局定時器。

每個 Cortex-A9 處理器都有一個 64 位比較器,用于在全局定時器達到比較器值時聲明一個私有中斷。

計時

GTC 始終以 CPU 頻率 (CPU_3x2x) 的 1/2 計時。

寄存器概述

有關(guān)GTC的注冊概述如下表

411eb9ec-cac4-11eb-9e57-12bb97331649.png

全局定時器寄存器概述

怎么使用?

下面兩個函數(shù)是在bsp standalone中的xtime_l.c中。

void XTime_SetTime(XTime Xtime_Global)

{

/* Disable Global Timer */

Xil_Out32((u32)GLOBAL_TMR_BASEADDR +(u32)GTIMER_CONTROL_OFFSET, (u32)0x0);

/* Updating Global Timer Counter Register */

Xil_Out32((u32)GLOBAL_TMR_BASEADDR +(u32)GTIMER_COUNTER_LOWER_OFFSET, (u32)Xtime_Global);

Xil_Out32((u32)GLOBAL_TMR_BASEADDR +(u32)GTIMER_COUNTER_UPPER_OFFSET,

(u32)((u32)(Xtime_Global》》32U)));

/* Enable Global Timer */

Xil_Out32((u32)GLOBAL_TMR_BASEADDR + (u32)GTIMER_CONTROL_OFFSET, (u32)0x1);

}

void XTime_GetTime(XTime *Xtime_Global)

{

u32 low;

u32 high;

/* Reading Global Timer Counter Register */

do

{

high = Xil_In32(GLOBAL_TMR_BASEADDR + GTIMER_COUNTER_UPPER_OFFSET);

low = Xil_In32(GLOBAL_TMR_BASEADDR + GTIMER_COUNTER_LOWER_OFFSET);

} while(Xil_In32(GLOBAL_TMR_BASEADDR + GTIMER_COUNTER_UPPER_OFFSET) != high);

*Xtime_Global = (((XTime) high) 《《 32U) | (XTime) low;

}

官方已經(jīng)把全局定時器自動初始化好了,其頻率為CPU頻率的一半。

定義全局定時器的7個寄存器全部按照地址進行了宏定義,采用xil_io.h里的out32和in32兩個函數(shù)進行讀寫操作:

#define Global_Timer_INTR XPAR_GLOBAL_TMR_INTR#define Global_Timer_Counter_Register0 XPAR_GLOBAL_TMR_BASEADDR+0x0U#define Global_Timer_Counter_Register1 XPAR_GLOBAL_TMR_BASEADDR+0x4U#define Global_Timer_Control_Register XPAR_GLOBAL_TMR_BASEADDR+0x8U#define Global_Timer_Interrupt_Status_Register XPAR_GLOBAL_TMR_BASEADDR+0xCU#define Comparator_Value_Register0 XPAR_GLOBAL_TMR_BASEADDR+0x10U#define Comparator_Value_Register1 XPAR_GLOBAL_TMR_BASEADDR+0x14U#define Auto_increment_Register XPAR_GLOBAL_TMR_BASEADDR+0x18U

接下來進行全局定時器的初始化和中斷函數(shù)綁定:

GT_Write_Reg(Global_Timer_Control_Register,0);//停止全局定時器

GT_Write_Reg(Global_Timer_Counter_Register0,0);//清空計數(shù)器低32位

GT_Write_Reg(Global_Timer_Counter_Register1,0);//清空計數(shù)器高32位

GT_Write_Reg(Global_Timer_Interrupt_Status_Register,1);//清除中斷標(biāo)志位

GT_Write_Reg(Comparator_Value_Register0,TIMER_LOAD_VALUE);//加載比較器低32位

GT_Write_Reg(Comparator_Value_Register1,0);//加載比較器高32位

GT_Write_Reg(Auto_increment_Register,TIMER_LOAD_VALUE);//加載遞增寄存器數(shù)值

Status = XScuGic_Connect(IntcInstancePtr, Global_Timer_INTR,

(Xil_ExceptionHandler)TimerIntrHandler,

0);//綁定全局定時器中斷服務(wù)函數(shù)

if (Status != XST_SUCCESS)

{

return Status;

}

XScuGic_InterruptMaptoCpu(IntcInstancePtr,1,Global_Timer_INTR);//將27號全局定時器中斷映射到CPU1

XScuGic_Enable(IntcInstancePtr, Global_Timer_INTR);//打開全局定時器中斷(27號)

主程序中打開全局定時器開始計時

GT_Write_Reg(Global_Timer_Control_Register,//啟動全局定時器

Auto_Increment_Bit|IRQ_Enable_Bit|Comp_Enable_Bit|Timer_Enable_Bit);

總結(jié)

全局定時器一共7個寄存器,打開SDK再想看看對應(yīng)的BSP文檔時就會發(fā)現(xiàn)還是很復(fù)雜的。

編輯:jq

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

    關(guān)注

    68

    文章

    20142

    瀏覽量

    246644
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5587

    瀏覽量

    128991
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    11213

    瀏覽量

    222767
  • 計數(shù)器
    +關(guān)注

    關(guān)注

    32

    文章

    2306

    瀏覽量

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

    關(guān)注

    23

    文章

    3359

    瀏覽量

    121655

原文標(biāo)題:Zynq-7000系列全局定時器(GT)詳解

文章出處:【微信號:leezym0317,微信公眾號:FPGA開源工作室】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

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

    使用系統(tǒng)定時器SysTick來實現(xiàn)精確延時微秒和毫秒函數(shù)

    );//定時1ms即SysTick定時器每1ms中斷一次,如果我們定義全局變量,然后在中斷函數(shù)中,讓此變量遞減,而在延時函數(shù)中,一直判斷此變量是否減到了0,那么這樣就實現(xiàn)了一個延時毫秒的函數(shù)。同理改變
    發(fā)表于 11-20 07:12

    PWM、定時器、SysTick 區(qū)別及應(yīng)用場景

    在單片機和嵌入式開發(fā)中,經(jīng)常會遇到PWM(脈寬調(diào)制)、定時器、SysTick(系統(tǒng)滴答定時器)這幾個詞。很多初學(xué)者容易把它們混為一談,以為都是“定時相關(guān)的東西”。其實,它們在本質(zhì)和應(yīng)用上有明顯差別
    的頭像 發(fā)表于 11-17 10:53 ?196次閱讀
    PWM、<b class='flag-5'>定時器</b>、SysTick 區(qū)別及應(yīng)用場景

    SysTick系統(tǒng)滴答定時器簡介

    SysTick—系統(tǒng)定時器是屬于CM33內(nèi)核中的一個外設(shè),內(nèi)嵌在NVIC中。系統(tǒng)定時器是一個24bit的向下遞減的計數(shù),計數(shù)每計數(shù)一次的時間為 1/SYSCLK,一般我們設(shè)置系統(tǒng)時
    的頭像 發(fā)表于 09-23 09:50 ?1295次閱讀
    SysTick系統(tǒng)滴答<b class='flag-5'>定時器</b>簡介

    定時器同步之并行模式

    AT32F4xx定時器同步之并行模式 支持型號: AT32F 系列 主要使用外設(shè): TIMER 獲取示例 1 快速使用方法 1.1 硬件資源 AT-START-F403A V1.0 實驗
    發(fā)表于 09-22 09:56

    fpga開發(fā)板 璞致ZYNQ 7000 系列之 PZ7035/PZ7045/PZ7100-FH 核心板與開發(fā)板用戶手冊

    本文介紹了Xilinx Zynq-7000系列可擴展處理平臺及其開發(fā)板應(yīng)用。Zynq-7000采用雙核ARM Cortex-A9處理與28nm FPGA架構(gòu),支持高性能嵌入式開發(fā)。開
    的頭像 發(fā)表于 09-15 15:54 ?5776次閱讀
    fpga開發(fā)板 璞致<b class='flag-5'>ZYNQ</b> <b class='flag-5'>7000</b> <b class='flag-5'>系列</b>之 PZ7035/PZ7045/PZ7100-FH 核心板與開發(fā)板用戶手冊

    ?TPL5010-Q1 納米功耗系統(tǒng)定時器(帶看門狗功能)技術(shù)文檔摘要

    TPL5010-Q1 Nano 定時器是一款低功耗、符合 AEC-Q100 標(biāo)準(zhǔn)的定時器,帶有看門狗 該功能非常適合占空比或電池供電應(yīng)用中的系統(tǒng)喚醒。在這樣的系統(tǒng)中 微控制定時器可用
    的頭像 發(fā)表于 09-13 10:01 ?1235次閱讀
    ?TPL5010-Q1 納米功耗系統(tǒng)<b class='flag-5'>定時器</b>(帶看門狗功能)技術(shù)文檔摘要

    DS160PT801 PCIe 4.0 16通道重定時器技術(shù)解析與應(yīng)用指南

    Texas Instruments DS160PT801 8通路(16通道)重定時器是高性能PCI-Express協(xié)議感知重定時器,支持高達16GT/s的PCIe數(shù)據(jù)速率。可將這8路分為兩個x4的鏈
    的頭像 發(fā)表于 09-11 14:58 ?563次閱讀
    DS160PT801 PCIe 4.0 16通道重<b class='flag-5'>定時器</b>技術(shù)解析與應(yīng)用指南

    大彩講堂:VisualHMI-LUA教程-定時器的使用指南

    定時器的使用
    的頭像 發(fā)表于 08-31 16:59 ?827次閱讀
    大彩講堂:VisualHMI-LUA教程-<b class='flag-5'>定時器</b>的使用指南

    基于 AS32X601 微控制定時器模塊(TIM)技術(shù)研究與應(yīng)用實踐

    摘要: 本文全面介紹了國科安芯推出的AS32X601系列微控制定時器模塊(TIM),包括其系統(tǒng)架構(gòu)、功能特性、應(yīng)用場景以及工程實踐要點。通過對芯片的詳細分析,揭示了其高性能運行的基礎(chǔ)。本文詳細
    的頭像 發(fā)表于 08-19 16:44 ?584次閱讀

    第二十章 TIM——基本定時器

    本章介紹了W55H32基本定時器TIM6、TIM7,16位向上計數(shù),含時鐘源、預(yù)分頻等,講解定時計算及初始化結(jié)構(gòu)體。
    的頭像 發(fā)表于 06-20 13:51 ?879次閱讀
    第二十章 TIM——基本<b class='flag-5'>定時器</b>

    第十二章 SysTick——系統(tǒng)定時器

    本章介紹了W55MH32的SysTick系統(tǒng)定時器,它是24位遞減計數(shù),含4個寄存,可配置定時、中斷,用于產(chǎn)生時基 等。
    的頭像 發(fā)表于 05-22 17:16 ?813次閱讀
    第十二章 SysTick——系統(tǒng)<b class='flag-5'>定時器</b>

    MCU定時器/計數(shù)

    RISC-V核低功耗MCU通過靈活的定時器架構(gòu)、低功耗模式適配及硬件級中斷優(yōu)化,在工業(yè)控制、智能家居等場景中實現(xiàn)高精度計時與能耗控制的協(xié)同設(shè)計,滿足復(fù)雜任務(wù)調(diào)度與實時響應(yīng)的雙重需求?。 一、?硬件
    的頭像 發(fā)表于 04-27 13:54 ?580次閱讀

    TPS3435 納米靜態(tài)電流精密超時看門狗定時器數(shù)據(jù)手冊

    TPS3435 是一款超低功耗 (典型值為 250nA) 器件,提供可編程超時看門狗定時器。 TPS3435 提供高精度超時看門狗定時器,具有適用于各種應(yīng)用的一系列功能。超時看門狗定時器
    的頭像 發(fā)表于 04-09 15:49 ?706次閱讀
    TPS3435 納米靜態(tài)電流精密超時看門狗<b class='flag-5'>定時器</b>數(shù)據(jù)手冊

    基于Xilinx ZYNQ7000 FPGA嵌入式開發(fā)實戰(zhàn)指南

    電子發(fā)燒友網(wǎng)站提供《基于Xilinx ZYNQ7000 FPGA嵌入式開發(fā)實戰(zhàn)指南.pdf》資料免費下載
    發(fā)表于 12-10 15:31 ?39次下載