zedboard--linux測試程序所用時間

由於在搞zedboard的時候想測試一下程序所用的時間,用到了下面兩種方法。
方法一:利用time函數,不過這個是秒級的。
#include "time.h"
time_t start.end;
float total;
main()
{
     start=tme(NULL);
     ........
     end=time(NULL);
     total=difftime(end,start);
     printf("use time is %f",total);
  
}


測試發現爲0.00000秒,因爲程序所用時間非常短,用這個方法不行,改用gettimeofday。


方法二:
#include "sys/time.h"
#include "math.h"
main()
{
     struct timeval  start,end;
     float  total;
     gettimeofday(&start,NULL);
     ........
     gettimeofday(&end,NULL);
     total=1000000*(end.tv_sec-start.tv_sec)+end.tv_usec-start.tv_usec;
     printf("use time is %f\n",total);
  
}

注意上面是sys/time.h,而不是time.h。以上這兩種方法都親測可以用。

另外記錄和複習今天工作的細節。

Opencv: 在pc機運行的時候敲擊的指令

g++ `pkg-config --cflags opencv` -o edge_detection.o edge_detection.cpp `pkg-config --libs opencv`

 交叉編譯(zedboard運行下)的指令

arm-xilinx-linux-gnueabi-g++  -I /home/xzy/OpenCV-2.3.1/install/include  -I/home/xzy/OpenCV-2.3.1/install/include/opencv -L /home/xzy/OpenCV-2.3.1/install/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann ./edge_detection.cpp -o ./edge_detection.o

另外還有注意事項就是一般這個程序都有帶圖片的參數,有時候忘記了會報出這樣的錯誤。

zynq> ./edge_detection.o 
terminate called after throwing an instance of 'std::logic_error'
  what():  basic_string::_S_construct null not valid

上面就是沒有帶參數。

QT:    

在pc機運行的時候,在label靜態顯示一張圖片,拖入,設置好大小,

在輸入:  ui->label->setPixmap(QPixmap("/opt/lena.bmp"))

ui->label->show();

但是要有讀寫這個照片的權限 哦,沒有的話是不能顯示的。

在zedboard上運行qt,交叉編譯即可。

/usr/local/Trolltech/QtEmbedded-4.7.3-arm/bin/qmake  –project    

/usr/local/Trolltech/QtEmbedded-4.7.3-arm/bin/qmake

make

這在前面的博客中有講的很清楚了,這裏回憶一下。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章