2013-05-15 35 views

回答

4

LOCAL_CFLAGS選項在Android.mk文件中相當於通常用於編譯器的指定編譯選項的通常CFLAGS

這樣的選項,其中大多數文件可以找到例如this page from the GCC documentation上的各種鏈接。

至於-mno-thumb選項,它禁用了大多數(最近)ARM處理器上可用的可選指令集的Thumb選項。這個指令集是一個比通常的ARM指令更慢(編輯:查看whobertoos的答案)指令集的限制, 更快的 ,因此使用此標誌禁用它可確保與更多(主要是較舊的)處理器兼容,但可能會降低性能作爲對口。

1

mbrenon在他寫的幾乎所有內容中都是正確的。 但是,THUMB指令集比ARM指令集慢。它佔用較少的空間,但速度較慢。

那是怎麼回事。 與arm指令相比,每個拇指指令佔用一半的空間。這限制了每條指令的可用選項,例如參數,尋址模式等。這導致執行相同工作所需的更多指令,並且每條指令需要一個執行週期,因此減慢。 據估計,ARM模式下的程序速度要快30-40%,但THUMB模式下的程序佔用的空間要少30-40%。拇指是爲了記憶有限的系統而發明的。

拇指模式也會影響外部存儲器電源。

儘管在大多數情況下需要執行更多的指令,但可以在一個週期內提取兩條指令。這是我對這個問題的理解。如果這是完整的答案,我不是100%確定的。