在Linux下沒有像keli那樣好用的IDE來開發(fā)51單片機,開發(fā)環(huán)境只能自己搭建了。
第一步:安裝交叉編譯工具
a) 安裝SDCC
sudo apt-get install sdcc
b)測試SDCC是否可用,這是個網上找的簡單的流水燈代碼 test.c, 用來測試
#include "8051.h"
#define uint unsigned int
#define uchar unsigned char
uchar tab[8] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
void Delay(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void main()
{
uchar i;
while(1)
{
for(i=0;i<8;i++)
{
P1 = tab[i];
Delay(100);
}
}
}12345678910111213141516171819202122232425
編譯它: sdcc test.c
會生成這么多的文件:
test.lk test.map test.rel test.sym test.asm test.ihx test.lst test.mem test.rst
我們只需要其中的 test.ihx
packihx file.ihx >file.hex 轉換為hex文件
接著下載hex2bin文件,網址(http://sourceforge.net/projects/hex2bin/files/latest/download)。命令:hex2bin sourcefile.hex。之后就會生成sourcefile.bin文件。
hextobin file.hex 生成bin文件
注意:為了方便以后調用hex2bin,可以將路徑加入到 .bashrc文件
在~/.bashrc最后一行加上Hex2bin 所在的文件夾位置
PATH=$PATH:/home/leo/workspace/c51/Hex2bin-2.31
可以寫個makefile文件,編譯方便些
這是我寫的makefile:
test.hex : test.c
sdcc test.c
packihx test.ihx > test.hex
hex2bin test.hex
clean:
rm -rf *.asm *.lst *.mem *.rst *.lnk *.rel *.sym *.ihx *.hex *.map
~ 1234567
第二步:安裝燒寫工具
a)下載stcflash:github.com/laborer/stcflash,這是個用python寫的向單片機燒寫bin文件的軟件
b)安裝環(huán)境:sudo apt-get install python-serial
c)燒寫 : sudo python ./stcflash.py test.bin