HAB Toolkit是Freescale提供的用於把代碼下載到SDRAM中運行或是燒寫到Flash的工具軟件。
下載地址:http://www.freescale.com/files/community_files/MCUCOMM/554_habtoolkit_v2_21.zip
安裝ADS board(應該是調試小板,即類似JTAG轉並口的那個)驅動:在CMD中運行install文件夾下的install,然後連接設備,在設備管理器中安裝驅動(ADS board)即可。
iMX21帶着一個內部ROM,出廠時在其中內置了一段叫做Bootstrap的程序。板子上電後,通過檢查BOOT[3:0]的設置決定啓動位置:設置板上跳線Boot[3:0]=0000,使得板子從芯片內部ROM的Bootstrap啓動。
連接USB和ADS board,打開HAB Toolkit.exe,將看見USB已連接:
選擇download only,代碼只會下載到sdram並執行。
rom中的Bootstrap只負責初始化板子上的 UART和USB接口並沒有設置memory,所以在下載代碼之前,要通過meminit.txt這個文件來設置內存控制器。
如果默認選擇了Init Memory裏的選項,則會根據meminit.txt(在example/)自動初始化sdram,否則可以自己選擇初始化文件。
選擇要下載執行的文件,執行即可。這裏要注意選擇內存開始地址。這樣程序就可以被下載到sdram中並執行。
燒寫flash:
Flash Loader提供將RAM 中的代碼燒寫到flash 的功能,幷包裝成bin格式的文件後給HAB Toolkit 使用。 當板子更換了 flash,就必須重寫此文件。
HAB Toolkit 默認選擇的是32bit nor,如果你重寫的flash loader,則要手動指定該文件。 如圖:
通過HAB Toolkit設置燒寫地址,將Flash Loader和要燒寫的文件一起下載到SDRAM中運行,由Flash Loader將文件從SDRAM中寫到Nor Flash中
總結HAB燒寫流程如下:
設置跳線boot[3:0]---上電---Bootstrap運行---meminit.txt初始化內存---Flash Loader和Image都下載到RAM中---Flash Loader把Image燒寫到Flash
設置boot[3:0]修改爲0110,配置串口115200、8bits、無校驗、1停止位、無流控制,上電後板子將從32位的Nor Flash中啓動。連接好串口並配置好超級終端,即可看見linux bootloader(U-BOOT)。
IMX21---boot[3:0]啓動模式表如下:
IMX23---boot[3:0]啓動模式表如下: