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://[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
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