国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

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

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

掃碼添加小助手

加入工程師交流群

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

在系統層面,有一個 24 位看門狗定時器和兩個 16 位三重定時器/計數器。

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

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

下圖顯示了系統定時器的關系

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

全局定時器

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

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

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

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

計時

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

寄存器概述

有關GTC的注冊概述如下表

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

全局定時器寄存器概述

怎么使用?

下面兩個函數是在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;

}

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

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

#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

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

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

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

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

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

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);//加載遞增寄存器數值

Status = XScuGic_Connect(IntcInstancePtr, Global_Timer_INTR,

(Xil_ExceptionHandler)TimerIntrHandler,

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

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);

總結

全局定時器一共7個寄存器,打開SDK再想看看對應的BSP文檔時就會發現還是很復雜的。

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    20250

    瀏覽量

    252213
  • 寄存器
    +關注

    關注

    31

    文章

    5608

    瀏覽量

    129968
  • cpu
    cpu
    +關注

    關注

    68

    文章

    11277

    瀏覽量

    224954
  • 計數器
    +關注

    關注

    32

    文章

    2315

    瀏覽量

    98172
  • 定時器
    +關注

    關注

    23

    文章

    3368

    瀏覽量

    123593

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    深入剖析TLC556:雙LinCMOS定時器的技術魅力與應用潛力

    深入剖析TLC556:雙LinCMOS定時器的技術魅力與應用潛力 在電子設計的廣闊領域中,定時器作為一種基礎且關鍵的組件,廣泛應用于各種需要精確時間控制的場景。TLC556作為一款雙LinCMOS
    的頭像 發表于 02-10 15:40 ?224次閱讀

    深入解析xx555系列精密定時器:功能、應用與設計要點

    深入解析xx555系列精密定時器:功能、應用與設計要點 在電子工程師的工具箱中,定時器是一種至關重要的組件,它廣泛應用于各種電子設備中,用于實現精確的時間控制。今天,我們將深入探討xx555
    的頭像 發表于 02-10 15:40 ?268次閱讀

    深入解析 LM555 定時器:特性、應用與設計要點

    ,成為電子設計中的經典之選。本文將深入剖析 LM555 定時器的特性、應用場景以及設計過程中的注意事項,希望能為工程師們提供有價值的參考。 文件下載: lm555.pdf 二、LM555 定時器的特性 2.1 兼容性強 LM55
    的頭像 發表于 02-10 15:35 ?203次閱讀

    探索xx555系列精密定時器:從特性到應用的全面解析

    探索xx555系列精密定時器:從特性到應用的全面解析 在電子設計領域,定時器是一種不可或缺的基礎元件,它能為各種電路提供精確的時間控制。今天我們要深入探討的就是xx555系列
    的頭像 發表于 02-10 15:20 ?1055次閱讀

    探索xx555系列精密定時器:特性、應用與設計要點

    探索xx555系列精密定時器:特性、應用與設計要點 在電子設計領域,定時器是實現精確時間控制和信號處理的重要元件。今天,我們將深入探討NA555、NE555、SA555、SE555這一系列
    的頭像 發表于 02-10 14:45 ?169次閱讀

    深入剖析LTC2956:多功能喚醒定時器的卓越之選

    深入剖析LTC2956:多功能喚醒定時器的卓越之選 在電子設備的設計中,如何實現高效的電源管理和精確的定時控制是關鍵問題。LTC2956作為一款具有強大功能的喚醒定時器,為工程師們提供
    的頭像 發表于 02-08 16:00 ?519次閱讀

    LAT1173高精度定時器的同步功能應用筆記

    STM32G474 所含的高精度定時器(HRTIMER)其實包含了多個定時器,多個定時器之間可以單獨工作,也可以進行同步,且高精度定時器還能與片上的其他
    發表于 01-11 17:32 ?0次下載

    深入剖析LMH0366:3 Gbps HD/SD SDI低功耗重定時器的卓越性能與應用

    深入剖析LMH0366:3 Gbps HD/SD SDI低功耗重定時器的卓越性能與應用 在當今的視頻傳輸領域,對于高帶寬、低功耗且性能穩定的設備需求日益增長。LMH0366作為一款3 Gbps HD
    的頭像 發表于 12-23 15:00 ?238次閱讀

    深入剖析DS125RT410低功耗多速率四通道重定時器

    深入剖析DS125RT410低功耗多速率四通道重定時器 在高速通信領域,信號傳輸的質量和可靠性至關重要。DS125RT410作為一款低功耗多速率四通道重定時器,為解決長距離、有損和串擾嚴重的高速串行
    的頭像 發表于 12-23 13:55 ?453次閱讀

    CW32系列微控制的時鐘源和定時器選項介紹

    CW32系列微控制的時鐘源和定時器選項會因具體型號而異,但一般來說,該系列微控制會提供多種時鐘源和
    發表于 12-16 06:26

    PWM、定時器、SysTick 區別及應用場景

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

    SysTick系統滴答定時器簡介

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

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

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

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

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

    MCU定時器/計數

    RISC-V核低功耗MCU通過靈活的定時器架構、低功耗模式適配及硬件級中斷優化,在工業控制、智能家居等場景中實現高精度計時與能耗控制的協同設計,滿足復雜任務調度與實時響應的雙重需求?。 一、?硬件
    的頭像 發表于 04-27 13:54 ?776次閱讀