红联Linux门户
Linux帮助
当前位置: 红联Linux门户 > Ubuntu

OK.把EasyPro 51 V2.0 的代码一直到 ubuntu的sdcc上~可以运行!

发布时间:2011-06-03 19:46:33来源:红联作者:rgwan
详情看:http://www.kmlinux.tk/html/single-chip-controller/761.html
因为我有点时间就去开发51单片机。发现在Linux(Debian和Ubuntu上)无法编译51单片机程序,只好在网上下了个Keil.然后就是wine仿真。但是老崩溃。代码也有问题。然后又改成了在虚拟机里跑。但是还是不爽!知道发现了SDCC后才知道了什么叫方便。一些Keil中的语法在SDCC中要更正。

比如说P0.1口的LED.点亮他在Keil中这么写

view sourceprint?
1 sbit LED=P0^1;

2 void XXXX(void)

3 {

4 LED=1;

5 LED=0;

6 while (1){}

7 }
但是在sdcc中却通不过。网上查了下,要用这种方法:

view sourceprint?
1 __sbit __at 0x80 LED;

2 //或者#define LED P0_1

3 void XXXX(void)

4 {

5 LED=1;

6 LED=0;

7 while (1){}

8 }
这才是正确的。

还有在sdcc中的一些细节写法,比如说
unsigned char Data;

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

这就是有错的。因为在 sdcc中,你没有把Data定义成signed char .所以他会报错,说这个不是有符号位的。

在sdcc的写法是:(ReadData!=Data).
文章评论

共有 2 条评论

  1. dqwit 于 2011-06-04 10:38:01发表:

    顶

  2. yzs 于 2011-06-03 20:58:06发表:

    支持