網頁

2015年7月19日 星期日

[Ubuntu][RPi] Setup toolchain


Raspberry Pi 固然可以做很多事, 但是有些事做起來還是不太順手, 譬如說大量的編譯工作. 因此, 接下來會在 Ubuntu 上設置 cross compiler, 也就是 toolchain, 以作為開發環境. 用 Ubuntu 的原因
  • Ubuntu 使用的普及率較高, 可取得資源較多.
  • Raspberry Pi 和 Ubuntu 都屬於 Debian 這個 distribution, 目錄結構都一樣.
雖然, 實際上我是在 VirtualBox 裡面的 Ubuntu 執行, 但這部份和 VirtualBox 沒有太大關係.
Toolchain 有兩種方式可以取得, 一種是下載已經編譯好的套件, 一種是下載 source code, 自行編譯.

安裝已經編譯好的 Toolchain

先安裝其他必要的套件
$ sudo apt-get install make git-core ncurses-dev
下載 toolchain
$ mkdir rpi
$ cd rpi
$ git clone https://github.com/raspberrypi/tools.git
再把它加到路徑中. 最簡單的方法就是加到 bashrc 裡面. 但是這邊不採用這個做法, 因為加到 bashrc 裡面, 只要登入, 就會在路徑中. 如果我們要在這一台電腦編譯這一台電腦所要執行的程式, 這樣就會造成混亂. 這裡的方法是把它放到 script 中, 要用到的時候再引入進來, 如果不要用, 可以登出再登入就可以了.
$ nano setrpi.sh
rpi-01
因為畫面有截斷, 所以另外寫在下面, 另外, 根據 Ubuntu 的版本不同, 32/64 位元的設定也有不同. 設定錯誤會產生執行 arm-linux-gnueabihf-gcc 的時候, 回報 arm-linux-gnueabihf-gcc "File not Found” 的錯誤.
Ubuntu 32 位元版
export PATH=$PATH:~/rpi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian
Ubuntu 64 位元版
export PATH=$PATH:~/rpi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64 

測試

在 rpi 下面開一個 temp 目錄, 加入 hello.c
$ mkdir temp
$ cd temp
$ nano hello.c
rpi-02
然後用以下命令編譯
$ arm-linux-gnueabihf-gcc hello.c –o hello
用 file 檢查檔案屬性.
rpi-03
試著執行這個檔案, 會回報檔案格式不符.
rpi-04
上傳到 Raspberry Pi 之後, 可以正常執行.
image

沒有留言:

張貼留言

請提供您寶貴的意見