Hempl/編譯 Hempl
Mizar32 Web Builder 位於 http://builder.simplemachines.it 允許您以多種方式定製韌體,併為您構建新的韌體映像,而無需執行任何這些糟糕的操作。但不幸的是,目前我們還沒有為 Hempl 提供此功能。請參閱 問題 #4.
如果這對你來說不夠,或者你只是喜歡這種事情,那就深吸一口氣,然後...
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 軟體包,請執行上述操作,然後轉到
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-ng,crosstool-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
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
另一種選擇是
git clone https://github.com/simplemachines-italy/hempl.git cd hempl
Mizar32 的 256KB 和 512KB 快閃記憶體/64MB 內部 RAM 版本使用相同的 Hempl 韌體。使用以下命令
scons board=mizar32 cpu=AT32UC3A0256
如果您正在編譯 Hempl 原始碼,構建將建立一個名為 hempl_at32uc3a0256.elf 的檔案。
我們無法直接為 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