跳转到内容

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://[email protected]/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
华夏公益教科书