Chip123 科技應用創新平台
標題:
C2H與Profiling的疑問
[打印本頁]
作者:
static314
時間:
2009-5-26 10:40 PM
標題:
C2H與Profiling的疑問
======================C2H======================
3 u" }( _: N8 G: U( D& I; \
我想把下面這一個function改成C2H來實作~
. R5 w7 j8 B$ O$ w* @; ~
) [ ]4 k/ E% s" U* V9 S
bool AUDIO_DacFifoNotFull(void){
5 p7 @5 J6 s9 T* U5 V: U1 w% k3 `5 `
bool bReady;
% y+ p& @0 r; a: u- i
bReady = ((IORD(AUDIO_BASE, 5) & 0x01)?TRUE:FALSE)?FALSE:TRUE;
; Z* y7 W/ ^, t
return bReady;
1 a! }# ] M9 @$ J
}
4 {6 N/ ]$ y/ p* q8 @ E
8 o' i: B1 E6 u- T
因為直接這樣使用,C2H會不能編譯,會產生錯誤!
' m2 J' v: l/ m
在網路找到資料說,寫成以下這樣就可以編譯囉~
; y. N7 N# r; l3 \) i
6 Q2 n/ f2 p0 H9 ] Y
bool AUDIO_DacFifoNotFull(void){
4 {, f, b4 v! q' N% O5 Y4 ~) U
bool bReady;
( h4 J* j2 s( T7 X8 R6 A5 @, k
unsigned long * au_base = (unsigned long *) AUDIO_BASE;
" {$ C6 @ O% |+ A# l! R4 I% i
bReady = ((au_base[5] & 0x01)?TRUE:FALSE)?FALSE:TRUE;
" g& d$ |1 R; | p7 q/ `! Y
return bReady;
- i6 h9 k& q$ k7 |
}
# m, \' X3 v. {) D
2 T2 E, j( ^. |- O
改成這樣的確可以編譯了...
! R0 Y" k5 _, g0 c; _
但是為什麼會動作不正確呢?
' }& f7 u- j0 Y: @- p5 T
是因為改成C2H後,這樣寫會沒有動作嗎?
9 t9 ~5 u# p; G: N
請教各位大大,要如何讓以上的程式在C2H下可以動作呢?
1 O" b7 y6 S- d. v
; b; Z; {" Y0 n: T" m, ?; ^
0 k: G8 o* G- _1 \8 R: Y7 P5 Z# B% {
. K# u. I. M$ q
======================Profiling======================
% V. q; N7 ?5 W: i
我使用Profiling後,產生了一個檔案...
! u5 q7 l6 Z5 [# O5 w2 ^$ h; z
一共有這些分類的數值 (中文是我看英文直接翻的)
3 b- g$ o1 ~7 L& R- H7 u
! f s6 v5 G& L6 L( X2 }
percent Time 百分比時間
- E" {7 L9 M+ Q, N
cumulative Time 累計時間
% y0 `$ u7 I3 }/ U7 C
self Time 自身時間
/ a7 ]2 i/ L4 u& d5 @ C9 r
self time per call 每次呼叫花費時間
$ V5 f9 Q0 b! n7 t
total time per call 總計 每次呼叫花費時間
/ c& H/ P: |! q% f5 i' h
% N( W, z+ Z7 i) {% g
請教各位大大..
+ u2 U) P# L8 ~0 U
哪一個數值代表著執行時耗最大的時間呀!?
3 p1 k9 f1 Z/ c" ^" B
我目前都依percent Time為依據
! l9 X2 _+ t) I, X/ S1 B7 `, q2 W
想用C2H來改善執行的速度~
. ]: z1 ?0 a! x1 k$ S
請問依percent Time是正確的嗎?
3 A! W9 X M* f3 A+ E3 p3 g
: x% ?4 @& ?3 y: e/ i
先感謝各位大大幫忙喔~ ^ ^
作者:
masonchung
時間:
2009-5-26 11:57 PM
需要軟體的C達人來幫忙嗎
作者:
static314
時間:
2009-5-27 12:04 AM
真糟糕..我最重要的部分忘了講了
. ~3 O; \3 e# a0 R
這個是 Altera 提供的 NIOS II 裡的東西~
+ v: G- I9 r, ?3 F- i5 P5 b* P
C2H是 Altera公司所提供軟體轉硬體實作的一種編譯器 @@
# Z# H0 z7 e3 F0 o& E7 t
我問的問題都是NIOS II程式下的東西~
1 O3 G5 Z- M' n+ W
不好意思上面沒講清楚 >"<
1 \ e/ ^$ f# ], M$ n$ O
請各位大大幫忙囉~
作者:
tommywgt
時間:
2009-6-4 03:04 PM
AUDIO_BASE是個public變數, 你沒放上來型態我也不清楚
3 \/ G9 V$ u8 M" l
unsigned long * au_base是一個32 bits的指標位置指向跟AUDIO_BASE同一個地方
# i4 x& T8 J0 }) R7 R) w
(在NIOS-II內, long是32 bits沒錯吧)
, e4 Y. F5 g/ G7 @5 N3 o: C
所以au_base[5]所指向的是(char)AUDIO_BASE + 5x4的地方
: J8 Y4 `7 K2 y+ j
如果AUDIO_BASE本身也是一個 long的指標的話, 有問題的就只是IORD這個 function 跟cache manager的問題
3 c1 z, [ B2 S! [/ ] G+ P
否則, 不同長度的指標型態互轉, 設計者必須自己計算新的offset才行
作者:
tommywgt
時間:
2009-6-4 03:08 PM
percent Time 指的是這個function call消耗系統平均時間, 愈高表示執行這個function call占用系統時間愈多, 在分析系統效能時, 確實是個很重要的指標
歡迎光臨 Chip123 科技應用創新平台 (http://www.chip123.com/)
Powered by Discuz! X3.2