Hempl/emBLOD
外观
< Hempl
通常,引导序列为
- USB DFU引导加载程序位于
0x8000000-80001FFF
(8KB),它检查用户按钮是否被按下,如果未按下,则运行 - Hempl (miniPicoLisp) 解释器位于
0x80002000
emBLOD 是一种嵌入式引导加载程序,它替换了 0x80002000 处的 eLua,并从格式化为 FAT 的 SD 卡上的文件加载修改后的 eLua 解释器代码到 32MB SDRAM 的开头,然后在那里执行它。它的启动速度很快(不到一秒),并且绕过了 Mizar32 模型 C 的 120KB 代码大小限制。
缺点是,当加载到 SDRAM 而不是 Flash 时,Hempl 解释器的运行速度只有原来的六分之一。但是,如果您需要 Mizar32 模型 C 上的外设支持,这是唯一的方法。
emBLOD 是一个开源代码项目,托管在http://github.com/cmp1084/emBLOD
要在 Ubuntu 上获取和构建源代码,您需要安装
apt-get install git dfu-programmer
以及 avr32 GCC 交叉编译器,有关说明,请参阅 编译 Hempl 页面开头的部分。
引导加载程序可以从源代码构建,如下所示
git clone https://github.com/cmp1084/emBLOD cd emBLOD make
这将创建同一目标文件的两个版本:emblod.elf
和 bin/emblod.bin
。但是,dfu-programmer
需要一个 .hex
文件,因此将其转换
avr32-objcopy -O ihex emblod.elf emblod.hex
然后通过 USB 将 Mizar32 连接到您的 PC,在按住 SW2 的情况下重置或启动电路板,并在 PC 上发出以下命令
dfu-programmer at32uc3a0128 erase dfu-programmer at32uc3a0128 flash emblod.hex dfu-programmer at32uc3a0128 start
如果您以 115200-8-N-1 连接了串行端口,您将看到 emBLOD 发出的消息。
您应该已经熟悉 编译 Hempl。
使用 Hempl,并添加
bootloader=emblod
到 scons
编译命令中。这将创建一个 ELF 文件,您应该使用以下命令将其转换为 BIN 文件
avr32-objcopy -O binary *.elf autorun.bin
并将 autorun.bin
复制到 Mizar32 的格式化为 FAT 的微型 SD 卡的根目录。