原创 NiosII——系统时钟API函数应用timestamp(3)

2010-1-31 19:51 5872 14 15 分类: FPGA/CPLD

#include "system.h"<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


#include "alt_types.h"


#include "stdio.h"


#include "unistd.h"


#include "sys/alt_timestamp.h"//timestamp需要头同文件


 


int main (void)


{


  alt_u32 freq;


  alt_u32 time1,time2,time3;


  alt_u32 Past_time1,Past_time2;


  freq= alt_timestamp_freq();//获得timestamp的时钟频率


  printf("%d\n",freq);


  if(alt_timestamp_start()<0)//启动timestampe的计数,每次调用都会对snapshot寄存器清零


        printf("No timestamp device available\n");


  else


  {


    time1 = alt_timestamp();//获取当前sanpshot寄存器的值


    usleep(1000);


    time2 = alt_timestamp();//


    usleep(3000);


    time3 = alt_timestamp();


    Past_time1 = (time2-time1)/(ALT_CPU_FREQ/1000000);


    printf("%d\n",Past_time1);


    Past_time2 = (time3-time2)/(ALT_CPU_FREQ/1000000);


    printf("%d\n",Past_time2);  


   }


    while(1);


}


总结:


1.    硬件需要:要有可写周期寄存器,要有sanpshot寄存器,


2.    包含sys/alt_timestamp.h头文件


3.    启动函数:alt_timestamp_start();返回值为负说明系统没有timestamp


4.        获取sanpshot寄存器的值根据两次获取的寄存器值的差来计算程序经过的时间,注意单位为SOPC中设定timer的最小计时时间。

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户1314276 2010-8-3 17:32

timestamp需要头同文件 是什么意思,我用这个函数没有返回时间值 不知道是什么问题,在使用timestamp函数要做哪些设置,我想是不是我那个地方没设置好 #include "stdio.h" #include "system.h" #include "sys/alt_timestamp.h" #include "alt_types.h" #include "altera_avalon_timer.h" #include "unistd.h" #define A 0x04C11DB7 #define N 3 int main(void) { alt_u32 time1,time2; //alt_u32 a; // a = 0x04C11DB7; //int n; alt_u32 c; if (alt_timestamp_start() < 0){ //开启时间标记服务 printf("Can't Start Timestamp...\n"); } else { printf("hello world\n"); } time1 = alt_timestamp(); //测试时间点1 printf("The Instruction ci_crc runs %d\n",time1); c = ALT_CI_CRC(N,A); //通过宏使用定制指令 time2 = alt_timestamp(); //测试时间点2 printf("The Instruction ci_crc runs %d\n",time2-time1); printf("c = %x\n",c); return 0; }
相关推荐阅读
用户180508 2011-08-08 22:29
运算放大器指标
1.输入失调电压VIO(input offset voltage) :输入电压为零时,将输出电压除以电压增益,再加上负号,即为折算到输入端的失调电压。亦即使输出电压为零时在输入端所加的补偿电压。VIO...
用户180508 2011-02-18 22:21
UDE(u盘超级加密2008)失效解决
UDE伪装成唐诗三百首的加密软件,在忘记密码资料还没有丢失,操作系统改变时加密文件没有显示在加密区内。此时文件也没有丢失。 采用R-Studio(注册后)可以探测到隐藏的文件,并恢复。 本人遇到的隐藏...
用户180508 2011-02-01 12:35
Altea公司FPGA开发软件安装指南与注意
Quartus II安装点击Setup,和安装其他应用程序一样。可以根据自己的需要决定安装的大小。比如可以选择是否安装某种型号的器件 QuartusII8.0 破解补丁1将sys_cpt.dll覆盖掉...
用户180508 2011-02-01 12:02
Altea公司FPGA开发软件安装指南与注意
Quartus II安装点击Setup,和安装其他应用程序一样。可以根据自己的需要决定安装的大小。比如可以选择是否安装某种型号的器件QuartusII8.0 破解补丁1将sys_cpt.dll覆盖掉安...
用户180508 2011-02-01 12:01
Altea公司FPGA开发软件安装指南与注意
Quartus II安装点击Setup,和安装其他应用程序一样。可以根据自己的需要决定安装的大小。比如可以选择是否安装某种型号的器件QuartusII8.0 破解补丁1将sys_cpt.dll覆盖掉安...
用户180508 2010-12-30 10:18
VC安装错误解决
安装VC++6.0时候总是说我的安装程序无法创建一个DCOM用户来注册? 右击我的电脑-》管理-》本地用户和组-》用户-》删除VSA Sever Account项 再安装,成功!...
EE直播间
更多
我要评论
1
14
关闭 站长推荐上一条 /3 下一条