分页: 1 / 1

linux/msys环境下使用sdcc开发(取代keil C)

发表于 : 2012-11-16 19:19
silaoA
转移到linux下之前,对linux下嵌入式开发非常陌生,不知道用什么工具。后来听说了SDCC用于编译51等系列小的单片机工程,这是一个开源工具。在windows下一直只会依赖Keil C或MDK,但还是想尽量避免使用盗版的、破解的商业软件。

在windows下安装好msys(或者msys-cn http://code.google.com/p/msys-cn/),就可以方便地利用一些在linux下常用的命令,算是对图形界面的的补充。这两天拿学习板试验了一下sdcc<http://sdcc.sourceforge.net/>,手册为全英文,只粗略地看懂怎么编译和连接,更多更精细的功能暂时没工夫研究,用到的机会估计也不多,毕竟51单片机的工程也不太大。

sdcc编译稍麻烦,每次只能编译一个c文件(one source file each time);连接时main.rel必须在最前面(main.rel should be the FIRST);使用GNU make工具管理的话,可以减小很多重复工作,提高效率。于是自己写了一个简单的示例工程,使用GNU make工具进行管理,经过测试在msys环境和linux环境均可用,但在windows的cmd环境下使用时,make -n显示的执行命令都很正确,但make总出错,一直没明白,希望有高人出来解决掉。 不过总算在msys下可以高效地使用,有机会摆脱Keil C。简单的sdcc使用,可以参照 http://skeylee.lofter.com/post/ba27f_1727b8

这个工程可以在http://code.google.com/p/sdcc-mcs51/找到,也可通过git clone http://code.google.com/p/sdcc-mcs51获取,详细内容在makefile中有解释。希望和大家相互交流,互相学习。仍有两个问题:
  • 1.SDCC手册我只找到英文版,不知有没有中文版;
  • 2. windows下可以用STC_ISP.exe、SSTEasyIAP.exe等工具将最终hex文件烧写入单片机,但在linux下我不知道有没有这样相似的工具;
如果有人已有以上两个问题的答案,希望能拿出来交流。

Re: linux/msys环境下使用sdcc开发(取代keil C)

发表于 : 2012-11-16 21:54
eexpress
linux下最好使用avr。全套。

sdcc 编译的结果,效果不好。

Re: linux/msys环境下使用sdcc开发(取代keil C)

发表于 : 2012-11-18 17:32
silaoA
为跨平台而修改得到的妥协方案

Re: linux/msys环境下使用sdcc开发(取代keil C)

发表于 : 2012-12-16 2:40
rgwan
eexpress 写了:linux下最好使用avr。全套。

sdcc 编译的结果,效果不好。
Keil C51更不行。你去试试算圆周率的程序。速度sdcc比Keil C更快。
http://rgwan.byethost10.com/archives/1196
这个是我自制的STC下载软件。

Re: linux/msys环境下使用sdcc开发(取代keil C)

发表于 : 2012-12-16 2:42
rgwan
至于avr的写入更简单。并口/USBasp + avrdude。刷刷的写

Re: linux/msys环境下使用sdcc开发(取代keil C)

发表于 : 2013-04-26 12:47
sevk
学习了,多谢.