|
======================C2H======================
+ m& `) }/ \0 V" L, t( h9 p我想把下面這一個function改成C2H來實作~
& E, l0 a7 x5 V5 K
" ~2 ]+ m& x \$ ~; S$ p, b1 Pbool AUDIO_DacFifoNotFull(void){' s" N* E$ _! G# E0 R' N
bool bReady;
, ~0 c- G! O4 u& z7 N& E4 i& ~ bReady = ((IORD(AUDIO_BASE, 5) & 0x01)?TRUE:FALSE)?FALSE:TRUE;
) `6 D5 Z$ w2 C) x+ y return bReady;9 q; s7 W9 E# i
}5 h! N, o2 K/ R2 w: f T
! |- h& T+ O0 d" @: \9 U& p# h
因為直接這樣使用,C2H會不能編譯,會產生錯誤!; G7 i7 b G1 A0 T
在網路找到資料說,寫成以下這樣就可以編譯囉~3 e' f5 E u* [
# ]6 t4 q; b& [
bool AUDIO_DacFifoNotFull(void){
) p! f! x R9 W$ b5 Y$ n+ ` bool bReady;
I; v: }8 K( W1 L" L$ { unsigned long * au_base = (unsigned long *) AUDIO_BASE;
+ r: X6 p: D% G$ y# i) y8 ^2 G bReady = ((au_base[5] & 0x01)?TRUE:FALSE)?FALSE:TRUE;& i$ u1 p4 p5 J! O6 }1 }
return bReady;6 R* o5 U! e6 K( f3 W; G( k: @
}$ Q4 _( W# P2 o( @7 S2 j$ d3 p
; y8 Y; W# K' Y5 H# T. G
改成這樣的確可以編譯了...7 p6 c$ z% U. P5 y
但是為什麼會動作不正確呢?
, V- t1 O+ }) h是因為改成C2H後,這樣寫會沒有動作嗎?. x2 }: ]9 U0 w0 h; q* E9 {5 h/ H
請教各位大大,要如何讓以上的程式在C2H下可以動作呢?2 S7 Q3 { f( }, ~ B* F8 l
+ a; }1 ~$ J9 n, \; |: C0 K2 Y
3 K$ X( n4 I$ P5 N( P: z$ p" j
$ V1 R2 s' `" p" _4 z- y0 [' E$ {
======================Profiling======================+ r8 Q3 E* X+ q4 F
我使用Profiling後,產生了一個檔案...3 J S$ A! P' d6 z3 {
一共有這些分類的數值 (中文是我看英文直接翻的): Z! V1 g! k% J4 \3 l6 Q
/ ~$ t: l! K4 H- F1 apercent Time 百分比時間# P% K' u/ D' @6 r5 E! U
cumulative Time 累計時間
9 N0 t% s9 R- T6 @" m2 Mself Time 自身時間
; F; B3 r j% V) f$ O: f1 Rself time per call 每次呼叫花費時間
e, s7 n& x Jtotal time per call 總計 每次呼叫花費時間
4 Z9 G) n+ ^2 @2 g
5 o; d( h7 I. d2 v; K6 I3 a1 r請教各位大大..
2 o' c0 t: j+ ]1 ?% w+ m9 z2 E' T& c3 N哪一個數值代表著執行時耗最大的時間呀!?; ~0 I' m) F3 c* X c
我目前都依percent Time為依據
, u5 s4 N+ G1 H$ X7 `, p* o5 @想用C2H來改善執行的速度~
1 N+ B# A' s, k0 q. r請問依percent Time是正確的嗎? A) e9 P% X" V! d; q1 s4 ?
, K# X& M, b( s# A* s! U; M9 Z先感謝各位大大幫忙喔~ ^ ^ |
|