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 卡的根目錄。