Abstract

     本文介绍了使用timestamp时,编译时出现undefined reference to `alt_timestamp等错误的解决方法,应该对初学者有些帮助。编译环境NIOSII 11.0

Introduction

      本人在做timestamp的练习时,明明加入了#include "sys/alt_timestamp.h" 这个头文件,但是还是编译出问题。如下图:

 

 

程序代码:

#include <stddef.h>
#include
<stdio.h>
#include <sys/alt_timestamp.h>
#include
<sys/alt_alarm.h>
#include <alt_types.h>
#include
<system.h>

int main (void)
{
alt_u32 time1;
alt_u32
time2;
alt_u32 time3;
alt_u32 i;
if (alt_timestamp_start() < 0)
{
printf ("No timestamp device available");
}
else
{
time1
= alt_timestamp();
i=0;
while(i<2000)
i++;

time2 =
alt_timestamp();
i=0;
while(i<50000)
i++;
time3 =
alt_timestamp();

printf ("time in func1 = %d ticks\n",(
int)(time2-time1));

printf ("time in func2 = %d
ticks\n",(int)(time3-time2));

printf ("Number of ticks per second =
%u\n",(unsigned int) alt_timestamp_freq());
}
return 0;
}

实际上HAL只有在你为timestamp timer指定了物理设备后才会定义alt_timestamp等函数。

所以需要在BSP editor中设置,为timestamp timer指定物理设备,就是你在SOPC builder中添加的timer。

右击工程-->NIOS-->BSP Editor,然后选择timestamp的timer,本人此例子中在SOPC中定义的是timer0

如图:

 

Conclusion

   NiosII 的timestamp是计算函数时间的很好的工具,呵呵,不过先要在BSP中设置好,NISO9.0和之前的版本在system library properties中设置。

 

posted on 2012-05-13 12:14  lbyzsf  阅读(3719)  评论(0编辑  收藏  举报