Mizar32/emBLOD
外觀
< Mizar32
通常,引導順序是
- 位於
0x8000000-80001FFF(8KB)的USB DFU引導載入程式,它會檢查使用者按鈕是否被按下,如果未按下,則執行 - 位於
0x80002000的eLua直譯器
emBLOD是一個嵌入式引導載入程式,它取代了位於0x80002000的eLua,並將eLua直譯器程式碼的修改版本從FAT格式的SD卡上的檔案載入到32MB SDRAM的開頭,然後在那裡執行它。它啟動速度很快(不到一秒鐘)並且繞過了Mizar32型號C的120KB程式碼大小限制。
缺點是,當載入到SDRAM而不是Flash中時,eLua直譯器執行速度降低了六分之一。但是,如果您需要Mizar32型號C上的浮點或乙太網支援,這是唯一的方法。
emBLOD是一個開原始碼專案,託管在http://github.com/cmp1084/emBLOD
要在Ubuntu上獲取並構建原始碼,您需要安裝
apt-get install git dfu-programmer
以及avr32 GCC交叉編譯器,該編譯器的說明位於編譯Alcor6L頁面的開頭。
引導載入程式可以從原始碼構建如下
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發出的訊息。
您應該已經熟悉編譯Alcor6L。
使用eLua 0.9,新增
bootloader=emblod
到scons編譯命令中。這將建立一個ELF檔案,您應該使用以下命令將其轉換為BIN檔案
avr32-objcopy -O binary *.elf autorun.bin
並將autorun.bin複製到Mizar32的FAT格式的微型SD卡的根目錄。