NiosII timestamp使用時編譯出現undefined reference to `alt_timestamp問題


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中設置。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM