跳轉到內容

Hempl/編譯 Hempl

來自 Wikibooks,開放世界中的開放書籍

使用 Web Builder

[編輯 | 編輯原始碼]

Mizar32 Web Builder 位於 http://builder.simplemachines.it 允許您以多種方式定製韌體,併為您構建新的韌體映像,而無需執行任何這些糟糕的操作。但不幸的是,目前我們還沒有為 Hempl 提供此功能。請參閱 問題 #4.


如果這對你來說不夠,或者你只是喜歡這種事情,那就深吸一口氣,然後...

安裝 AVR32 交叉編譯器

[編輯 | 編輯原始碼]

在 GNU/Linux 上

[編輯 | 編輯原始碼]

Atmel AVR 32 位工具鏈 3.4.2

[編輯 | 編輯原始碼]

GNU/Linux 的交叉編譯器是 Atmel AVR 工具鏈 for Linux.

在撰寫本文時,即 2015 年 7 月,最新版本是 Atmel AVR 工具鏈 3.4.2,基於 GNU C 編譯器版本 4.4.7。

要跳過 Atmel 登錄檔格,您可以使用以下快速下載連結

您還需要

並且,如果您有興趣自己構建工具鏈,原始碼在這裡

獲取和解壓縮工具鏈

[編輯 | 編輯原始碼]

這裡我們展示了安裝 32 位版本的步驟

cd
wget http://www.atmel.com/Images/avr32-gnu-toolchain-3.4.2.435-linux.any.x86.tar.gz
tar xfz avr32-gnu-toolchain-3.4.2.435-linux.any.x86.tar.gz
# Fetch, unpack and install the header files
wget http://www.atmel.com/Images/atmel-headers-6.1.3.1475.zip
unzip atmel-headers-6.1.3.1475.zip
mv atmel-headers-6.1.3.1475/avr32 avr32-gnu-toolchain-linux_x86/avr32/include/
# Clean up
rm -r atmel-headers*
rm avr32-gnu-toolchain-*.gz

然後,要使用它,每個會話一次

PATH=$HOME/avr32-gnu-toolchain-linux_x86/bin:$PATH
export PATH

您可以將包含路徑 (C_INCLUDE_PATH) 設定為,在 avr32 中使用 atmel-headers-6.1.3.1475。

對於 64 位版本,將上述所有 "x86" 替換為 "x86_64"

將其安裝為 Debian/Ubuntu 軟體包

[編輯 | 編輯原始碼]

要從此處製作 Debian/Ubuntu 軟體包,請執行上述操作,然後轉到

sudo apt-get install alien fakeroot
cd avr32-gnu-toolchain-linux_x86
mkdir usr
mv [a-s]* usr/
# It includes a lot of files that it shouldn't, so select the toolchain ones.
tar cfz avr32-gnu-toolchain-3.4.2.tgz usr/avr32 usr/bin/avr32-* \
    usr/lib/gcc/avr32 usr/libexec usr/share/man/man1 
fakeroot alien --keep-version avr32-gnu-toolchain-3.4.2.tgz
mv avr32-gnu-toolchain_3.4.2-1_all.deb avr32-gnu-toolchain_3.4.2-1_i386.deb
rm avr32-gnu-toolchain-3.4.2.tgz
rm -r usr

或者,對於 64 位版本,在 avr32-gnu-toolchain-linux_x86_64 中執行相同的操作,並將 .deb 檔案重新命名為 ..._amd64.deb

如果您安裝了他們舊的 2.4.2 Ubuntu 軟體包,您需要先將它們刪除

sudo apt-get purge avr32-binutils avr32-buildroot-essentials avr32-gcc-newlib \
 avr32-gdb avr32gdbproxy avr32headers avr32parts avr32program avr32trace \
 avrfwupgrade libavr32ocd libavr32sim libavrtools libelfdwarfparser

然後,您可以使用以下命令安裝新的工具鏈

sudo dpkg -i avr32-gnu-toolchain_3.4.2-1_*.deb

(要再次刪除它,sudo apt-get purge avr32-gnu-toolchain)

從原始碼構建工具鏈

[編輯 | 編輯原始碼]

ct-ngcrosstool-ng 的一個分支,為您構建了更好的 AVR32 交叉編譯器

sudo apt-get install git autoconf bash gawk g++ libncurses-dev
git clone http://anonymous@spaces.atmel.com/git/ct-ng 
cd ct-ng
./bootstrap
./configure --enable-local
make
./ct-ng build

預設情況下,它將交叉工具鏈安裝在您的主目錄下,因此在構建 eLua 之前,您需要說

PATH=$HOME/x-tools/avr32-unknown-none/bin:$PATH
export PATH

在 Windows 上

[編輯 | 編輯原始碼]

Atmel 還提供了 Atmel AVR 工具鏈 for Windows 作為 setup.exe,其快速下載連結為

安裝構建系統

[編輯 | 編輯原始碼]

Hempl 構建系統(與官方 elua0.9 相同)使用 "scons" 和 "gcc"。Hempl 原始碼位於 git 下,因此請安裝這些。

在 Debian 或 Ubuntu 上

sudo apt-get install scons gcc git

下載原始碼

[編輯 | 編輯原始碼]

穩定版本

[編輯 | 編輯原始碼]

最新的穩定原始碼版本是 hempl-1.0,它完全支援 Mizar32 開發板。

wget https://github.com/simplemachines-italy/hempl/archive/v1.0.tar.gz
tar xfz v1.0.tar.gz
cd v1.0

另一種選擇是

當前開發版本

[編輯 | 編輯原始碼]

Hempl 專案

[編輯 | 編輯原始碼]
git clone https://github.com/simplemachines-italy/hempl.git
cd hempl

編譯 Hempl

[編輯 | 編輯原始碼]

適用於 Mizar32 A 和 B

[編輯 | 編輯原始碼]

Mizar32 的 256KB 和 512KB 快閃記憶體/64MB 內部 RAM 版本使用相同的 Hempl 韌體。使用以下命令

scons board=mizar32 cpu=AT32UC3A0256

如果您正在編譯 Hempl 原始碼,構建將建立一個名為 hempl_at32uc3a0256.elf 的檔案。

適用於 Mizar32 C

[編輯 | 編輯原始碼]

我們無法直接為 Mizar32-C 編譯 Hempl。它只有 128K 快閃記憶體!還有另一種方法。為此,我們使用 emBLOD。要了解它是如何工作的,請參閱關於 emBLOD 第二階段引導載入程式 的章節。

將韌體程式設計到開發板

[編輯 | 編輯原始碼]

編譯完成後,它應該建立了一個名為 hempl_at32uc3a0256.elf 的檔案,可以以多種方式程式設計到 Mizar32 開發板中:請參閱關於 刷寫韌體 的章節。

如果您將使用 dfu-programmer 來執行此操作,您首先需要將您的 .elf 檔案轉換為 .hex 檔案。例如

hempl=hempl_at32uc3a0256
avr32-objcopy -O ihex $hempl.elf $hempl.hex
華夏公益教科書