SetupDevEnv

來自飛騰CPU與嵌入式係統
跳轉至: 導航搜索

Native開發環境

飛騰係列本身CPU性能較強, 因此可以直接作為開發機使用. 在作為開發機使用的時候, 建議安裝Debian操作係統.


交叉編譯環境

飛騰係列CPU可以直接使用linaro官方編譯器. [網頁地址]

當前NetONE係統所使用的toolchain是gcc-linaro-5.3-2016.02-x86_64_aarch64-linux-gnu.tar.xz (Aarch64 little-endian)

交叉編譯器可以在host設備(例如x64)上編譯target(例如arm64)平台上的程序. 顯著的優點是編譯速度快, 缺點是編譯完的程序要copy到target設備上才能運行, debug也不是很方便

QEMU

QEMU同樣可以在x64的機器上建立起arm64的開發環境, 而且使用方式類似Native環境, 可以在代碼編譯後, 直接執行並debug. 下麵將以debian為例, 說明如何在x64設備上建立基於qemu的arm64開發環境.

首先, 你需要有一台x64的設備, 安裝有debian, 在x64上, 執行:

 1 apt-get install qemu qemu-user-static binfmt-support debootstrap
 2 qemu-debootstrap --arch=arm64 --keyring /usr/share/keyrings/debian-archive-keyring.gpg --variant=buildd --exclude=debfoster testing debian-arm64 http://mirrors.163.com/debian
 3 chroot debian-arm64  # 現在你已經在arm64環境之下了
 4 echo "deb http://mirrors.163.com/debian testing main" > /etc/apt/sources.list
 5 apt-get update
 6 apt-get install debian-ports-archive-keyring file# 這時候執行的apt-get命令已經是arm64的程序了
 7 gcc -o hello hello.c #編譯hello world
 8 ./hello #執行hello world
 9 file hello
10 # 輸出: hello: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, BuildID[sha1]=ddf80581621cd711415b234ee33e7b048dccd21c, not stripped

不過QEMU的缺點是: 由於是以虛擬化的方式運行, 因此速度比較(非常)慢. 不適合編譯類似linux內核這樣的大型程序.