0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

AMD MicroBlaze中通过AXI Timer获取时间戳

Hack电子 来源:博客园 2023-06-08 09:21 次阅读

作者:付汉杰 hankf@amd.com

1. 硬件的Vivado Block design设计中,添加AXI Timer

2. 包含AXI Timer的头文件

#include "xtmrctr.h"

3. 定义timer的参数和全局变量

/*
* The following constants map to the XPAR parameters created in the
* xparameters.h file. They are only defined here such that a user can easily
* change all the needed parameters in one place.
*/
#define TMRCTR_DEVICE_ID              XPAR_TMRCTR_0_DEVICE_ID


/*
 * This example only uses the 1st of the 2 timer counters contained in a
 * single timer counter hardware device
 */
#define TIMER_COUNTER_0   0


// #define XPAR_AXI_TIMER_0_CLOCK_FREQ_HZ 100000000U  100 000 000U
#define TMRCTR_DEVICE_FREQ_MS              (XPAR_TMRCTR_0_CLOCK_FREQ_HZ/1000)
#define TMRCTR_DEVICE_FREQ_US              (TMRCTR_DEVICE_FREQ_MS/1000)


#define TMRCTR_DEVICE_PERIOD_NS ( (1000*1000*1000)/XPAR_AXI_TIMER_0_CLOCK_FREQ_HZ )


XTmrCtrTimerCounter;/*TheinstanceoftheTmrctrDevice*/

4. 初始化AXI Timer

调用TmrCtrPolledInit()初始化AXI Timer, 也初始化了全局变量TimerCounter。

TmrCtrPolledInit(TMRCTR_DEVICE_ID,TIMER_COUNTER_0);

其中TmrCtrPolledInit()来自于xtmrctr_polled_example.c中的TmrCtrPolledExample(),可以在BSP中从AXI Timer的“Import Example”中导入。

5. 通过XTmrCtr_GetValue获取时间戳

通过XTmrCtr_GetValue获取时间戳,是以时钟周期为单位的。可以转化成微妙、毫秒、秒等单位。

    time_begin = XTmrCtr_GetValue(TmrCtrInstancePtr, TmrCtrNumber);
    for (i=0; i<100000; i++ ) {
        g_iLoopTest++;
    }
    time_end = XTmrCtr_GetValue(TmrCtrInstancePtr, TIMER_COUNTER_0);    


    if( time_end < time_begin ){
        time_diff = 0xffffffff - time_begin;
        time_diff = time_diff + time_end + 1;
    } else {
        time_diff = time_end - time_begin;
    }
    time_diff_us = time_diff/TMRCTR_DEVICE_FREQ_US;
    xil_printf("100K loop: %x : Timer diff: 0x%08x = %d Cycles, %d us, %d ms at %s : %d
",
            g_iLoopTest, time_diff, time_diff, time_diff_us, time_diff_us/1000, __

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • amd
    amd
    +关注

    关注

    25

    文章

    5197

    浏览量

    132636
  • MicroBlaze
    +关注

    关注

    3

    文章

    66

    浏览量

    21437
  • Timer
    +关注

    关注

    1

    文章

    58

    浏览量

    12679
  • AXI
    AXI
    +关注

    关注

    1

    文章

    126

    浏览量

    16286
  • 时间戳
    +关注

    关注

    0

    文章

    15

    浏览量

    2537

原文标题:AMD MicroBlaze中通过AXI Timer获取时间戳

文章出处:【微信号:Hack电子,微信公众号:Hack电子】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    不同的CAN通道同时收到CAN数据时,怎样获取时间呢?

    不同的CAN通道同时收到CAN数据时,怎样获取时间呢?按理说获取时间应该是同一时刻。
    发表于 02-18 08:03

    时间同步获取时间

    新手一枚,对单片机原理还不是很清楚,求教:TinyOS时间同步首先要获取本地时间,getStartTime(),想知道它是怎么
    发表于 03-20 10:37

    如何查询时间

    /Tools/unixtime.aspx,可以看到如下截图: :红色方框的数字1455526433就是我们需要的时间
    发表于 02-15 16:54

    请问RX23T如何获取系统时钟,以便获取类似时间,如何获取此段代码运行时间

    RX23T 如何获取系统时钟,以便获取类似时间,如何获取此段代码运行时间。 系统
    发表于 07-23 08:09

    如何在microblaze上测量C代码的执行时间

    如何在microblaze上测量C代码的执行时间?没有使用OS,所以我不能在time.h中使用桌面C函数,我是否必须使用xps计时器或axi计时器?任何人都可以使用xps计时器来测量执行时间
    发表于 10-30 09:36

    请问如何通过MicroBlaze访问BRAM?

    嗨,大家好,我正在研究Vivado 2014.4,Xilinx KC705。我需要通过Microblaze读取存储在BRAM(coe文件)的数据进行计算。我是微博阅读部分的新手。有人可以建议我
    发表于 05-20 08:38

    请问microblaze如何通过串口读写FPGA内部axi4总线上的寄存器?

    microblaze通过串口读写FPGA内部axi4总线上的寄存器
    发表于 12-23 06:16

    MicroBlaze控制LED的方法

    MicroBlaze控制LED入门【史上最详细】码字截图不易,转载请注明标题和作者,谢谢!!!本教程是写给以Xilinx官方开发板作为平台的初学者本实例开发环境:软件平台:Win10专业版
    发表于 02-09 06:24

    时间的简介与实现

    时间时间简介时间的实现时间
    发表于 02-28 06:23

    ulog里现在默认的时间是从哪里获取的呢?

    我现在用的外部RTC,想在ulog里的时间显示外部RTC的时间,ulog里现在默认的时间是从哪里获取
    发表于 11-14 14:22

    如何在tilebox上获取时间

    你好我知道 tilebox 有一个 RTC 模块,所以我意识到获取当前时间来为数据生成时间是可行的。可以这样做吗?在给定的项目示例是否有
    发表于 01-05 08:59

    基于AXI总线的MicroBlaze双核SoPC系统设计

    目的是利用嵌入在Xilinx FPGA中的MicroBlaze核实现基于AXI总线的双核嵌入式系统设计以及共享实现LED灯的时控.
    发表于 03-09 14:17 91次下载
    基于<b class='flag-5'>AXI</b>总线的<b class='flag-5'>MicroBlaze</b>双核SoPC系统设计

    AXI总线的MicroBlaze双核SoPC系统设计

    AXI总线的MicroBlaze双核SoPC系统设计
    发表于 10-31 08:54 8次下载
    <b class='flag-5'>AXI</b>总线的<b class='flag-5'>MicroBlaze</b>双核SoPC系统设计

    如何使用MicroBlaze调用AXI IP核详细解析

    在一个项目中,当你使用microblaze作为控制器来进行系统调度的时候,一般是建议将所有模块封装成AXI形式的IP核,这样好管理,也容易调试。
    的头像 发表于 04-27 11:17 5762次阅读
    如何使用<b class='flag-5'>MicroBlaze</b>调用<b class='flag-5'>AXI</b> IP核详细解析

    MicroBlaze大内部存储器(AXI BRAM)设计

    MicroBlaze可以使用AXI BRAM存放数据和指令。有些客户软件很大,需要把AXI BRAM的空间做到最大。AXI BRAM底层是Block RAM或者Ultra RAM。器件
    的头像 发表于 08-02 10:09 2497次阅读
    <b class='flag-5'>MicroBlaze</b>大内部存储器(<b class='flag-5'>AXI</b> BRAM)设计