上一篇文章中演示的是裸板開發過程中可能遇到的兩個問題的解決辦法。
1,是在keil中編寫程序並編譯連接成可以下載到開發板的 .hex 文件,然後用jlink仿真器下載;2,是在ubuntu中編寫編譯代碼,生成的是 .bin 文件,可以用uboot 下載。
這裏可能會用像我這樣的菜鳥會疑惑 ,hex與 bin文件同樣是下載到開發中的二進制代碼,有什麼區別呢?
Hex 文件和 Bin 文件的區別,這兩個文件裏都包含 CPU可以執行的機器碼,只是 Hex 比Bin 多一些信息,就是機器碼的存儲
地址。這些存儲地址實際是給燒寫程序的軟件使用的。如果我們燒寫 Hex 文件到板卡里(Flash 存儲器) ,
燒寫軟件就不會問我們存儲地址,因爲這個文件裏已經包含了這類信息了,這類信息是編譯器在生成 Hex
的時候加進去的,當然編譯器會有對應的項要你填寫。如果是燒寫 Bin 文件,燒寫軟件就會詢問你要燒寫
到哪個地址。一般情況下,CPU會從 0 地址開始執行程序,但是有些 CPU是從其他地址開始的,所以這個
起始值要視情況而定。而且有時爲了調試方便,有些工程師會把 Bin燒到 RAM 裏。