|
======================C2H======================
/ g8 P0 S3 E8 y6 E. x/ q8 h ]我想把下面這一個function改成C2H來實作~# X+ {9 B' }# g. x
7 S, q2 G; f/ _1 v2 t* v2 |" R# vbool AUDIO_DacFifoNotFull(void){; f7 x) v7 D4 K, I+ u$ Q
bool bReady;' I9 Y& |8 Z Z6 w% F: `) b2 F% {# f
bReady = ((IORD(AUDIO_BASE, 5) & 0x01)?TRUE:FALSE)?FALSE:TRUE;: H+ h3 N6 n! O$ J/ h) ~9 I
return bReady;% j+ M5 t4 o% F% R8 d& W
}
* p. H4 k3 q9 u0 k5 ~
+ |1 I& E( Z/ _; h9 N因為直接這樣使用,C2H會不能編譯,會產生錯誤!' h9 i; ~. r2 a% F7 A! l
在網路找到資料說,寫成以下這樣就可以編譯囉~
$ J! M( t" X6 o6 G+ B% w7 G6 T2 g" j. |: r
bool AUDIO_DacFifoNotFull(void){# ?- a' ^! V5 `! _. [
bool bReady;
; x: L4 }) s( U1 `9 x( t4 [ unsigned long * au_base = (unsigned long *) AUDIO_BASE;) Z9 _( M4 X0 U
bReady = ((au_base[5] & 0x01)?TRUE:FALSE)?FALSE:TRUE;
# l4 {( o% k+ ?6 v0 u, r return bReady;
7 D* L' R% E9 Q$ o ?4 C1 k}' ]3 x/ x( B1 Q. W" \+ V1 @% ^
0 x S) D. g( r8 x/ w: r+ C
改成這樣的確可以編譯了...
0 s2 Y/ f% p6 n& J4 N8 b但是為什麼會動作不正確呢?
$ G( a# b8 g q9 E是因為改成C2H後,這樣寫會沒有動作嗎?, [) J0 U% Q: [ y# s% t0 V
請教各位大大,要如何讓以上的程式在C2H下可以動作呢?7 { _6 v( A- J
! ]1 g7 v. j, q1 U A- ~
7 H3 Q+ d) d; s( M5 p, y 5 T! T* S5 i8 H
======================Profiling======================8 q, G3 N. T, Y& r! b. R+ D
我使用Profiling後,產生了一個檔案...+ p4 _1 r# O$ E* m, k
一共有這些分類的數值 (中文是我看英文直接翻的)
+ R. x6 d& ?2 u
3 ?7 D* V$ x q) ]) l+ Mpercent Time 百分比時間' u$ ~& ]& V. J# L4 S
cumulative Time 累計時間, \! a) d8 ^ F' d: J- Z
self Time 自身時間* u/ X! m1 b: } f1 T4 K0 O
self time per call 每次呼叫花費時間
+ ?- ~, c2 r+ L: [% K Q( l7 ]total time per call 總計 每次呼叫花費時間
" y7 m8 R4 N& l. _. v8 K) H; F& d" D& A3 ]9 y
請教各位大大..
# L* e6 U+ _% C哪一個數值代表著執行時耗最大的時間呀!?+ R4 ~& h# v" I3 r
我目前都依percent Time為依據
; q$ v/ F: I) W6 j! S想用C2H來改善執行的速度~+ Y6 u+ f1 L: e* x& n0 c
請問依percent Time是正確的嗎?
5 f' U. D& B W n; k J+ m' `: Z# j5 G% M8 C
先感謝各位大大幫忙喔~ ^ ^ |
|