新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 把EasyPro51編程器的源代碼修改在SDCC上,編譯運(yùn)行通過

把EasyPro51編程器的源代碼修改在SDCC上,編譯運(yùn)行通過

作者: 時間:2016-11-29 來源:網(wǎng)絡(luò) 收藏
因?yàn)槲矣悬c(diǎn)時間就去開發(fā)51單片機(jī)。發(fā)現(xiàn)在Linux(Debian和Ubuntu上)無法編譯51單片機(jī)程序,只好在網(wǎng)上下了個Keil.然后就是wine仿真。但是老崩潰。代碼也有問題。然后又改成了在虛擬機(jī)里跑。但是還是不爽!知道發(fā)現(xiàn)了SDCC后才知道了什么叫方便。一些Keil中的語法在SDCC中要更正。

比如說P0.1口的LED.點(diǎn)亮他在Keil中這么寫

本文引用地址:http://m.butianyuan.cn/article/201611/323425.htm

sbit LED=P0^1;
void XXXX(void)
{
LED=1;
LED=0;
while (1){}
}

但是在sdcc中卻通不過。網(wǎng)上查了下,要用這種方法:

__sbit __at 0x80 LED;
//或者#define LED P0_1
void XXXX(void)
{
LED=1;
LED=0;
while (1){}
}

這才是正確的。

還有在sdcc中的一些細(xì)節(jié)寫法,比如說

unsigned char Data;

while (!ReadData()==Data){}

這就是有錯的。因?yàn)樵?sdcc中,你沒有把Data定義成signed char .所以他會報(bào)錯,說這個不是有符號位的。

在sdcc的寫法是:(ReadData!=Data).

好的。修改后通過編譯和燒寫的E51PRO源代碼在這里:EP5-SDCC-src.tar.bz2



關(guān)鍵詞: EasyPro51編程器SDC

評論


技術(shù)專區(qū)

關(guān)閉