- Coremark 定位在 single core (CPU) 的測試
- Readme.txt 提到,需要修改 "adjust <core_portme.mak>, <core_portme.h> (and possibly <core_portme.c>) according to the specific platform used."
- 先 copy 一份 config 到 ./linux/
- 首先 "make PORT_DIR=linux clean"
- 修改 "linux/core_portme.mak" / "linux/core_portme.c" / "linux/core_portme.h" / "Makefile"
- core_poartme.mak
#CC = gcc
CC = /home/xxx/arm-none-linux-gnueabi-gcc
PORT_CFLAGS = -O2
FLAGS_STR = "$(PORT_CFLAGS) $(XCFLAGS) $(XLFLAGS) $(LFLAGS_END)"
CFLAGS = $(PORT_CFLAGS) -I$(PORT_DIR) -I. -DFLAGS_STR=\"$(FLAGS_STR)\" -static
LFLAGS_END += -lrt
- 可編譯成幾種不同 mode:
- General mode for default setting
- make PORT_DIR=linux
- General mode with iteration
- make PORT_DIR=linux -DPERFORMANCE_RUN=1 -DITERATIONS=1000
- Validation mode
- make PORT_DIR=linux -DVALIDATION_RUN=1
- Debug mode for incorrect CRC
- make PORT_DIR=linux XCFLAGS="-DCORE_DEBUG=1"
- Parallel mode_FORK
- make PORT_DIR=linux XCFLAGS="-g -DMULTITHREAD=4 -DUSE_FORK=1"
- Parallel mode_PTHREAD
- Modify core_portme.mak (LFLAGS_END += -lrt –lpthread)
- make PORT_DIR=linux XCFLAGS="-DMULTITHREAD=4 -DUSE_PTHREAD"
- Profile mode (TBT)
- Mem allocation_malloc
- 修改 core_portme.h
- define MEM_METHOD MEM_MALLOC
- 配合上面的 make
- Mem allocation_static
- 修改 core_portme.h
- define MEM_METHOD MEM_STATIC
- 配合上面的 make
- Mem allocation_stack
- 修改 core_portme.h
- define MEM_METHOD MEM_STACK
- 配合上面的 make
- 執行 ./coremark or ./coremark 0x0 0x0 0x66 0 7 1 2000
- 結果就看 Total ticks / Total time (secs) / Iterations/Sec / Iterations / Compiler flags
搜尋此網誌
2011年5月20日
Coremark porting to Android
訂閱:
張貼留言 (Atom)
請問為何compile後,出來的是.exe的file,Android不是只能run .apk的檔案嗎?
回覆刪除這個 compile 的目的、對象,都不是用於 Android 上層的 application。Android application 的確只能吃 apk。這類的 Linux tool (console mode) 在 compile 後,可以用 adb push 放到 emulator or device 上面,然後用 adb shell xxx 來執行。有權限的話就可以 run。這部分牽涉到 embedded 與 Linux program 開發的概念,非純粹 Android application 之用途。
回覆刪除您好, 請問我該如何在linux compile好的.exe檔porting至android device?? 謝謝!!
回覆刪除1. 那是因為在 coremark 的 Makefile & core_portme.h 把副檔名寫死了,其實去更改裏面的變數,出來就不會是 .exe了,也可以是.bin。
回覆刪除2. Android 核心是 Linux,本來就可以透過 console 執行 binary program。Coremark 編譯後,就變成一個 binary program。
3. .apk 是 Android 上面可以執行的,以 Activity 為主的 application,並非所謂的可執行檔,其實是一個壓縮檔,只是它剛好是一個 application 然後可以 install 到 Android 上面跑。
用 adb push 就可以了
回覆刪除對於porting android platform 可以提供完整簡易的操作流程嗎?因為make完,也只有.exe
回覆刪除很久沒用,沒有再 reproduce 步驟了。是因為 config file or make file 指定成 coremark.exe 了。用 search 的方法找看看,只要把檔名改掉就好。只要用 cross-compile 方法,也可以直接在 Linux 下執行 (./coremark.exe)
刪除