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

内核编译和嵌入式产品的设计与开发
回复
silaoA
帖子: 3
注册时间: 2012-11-16 19:06
系统: ubuntu/windows

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

#1

帖子 silaoA » 2012-11-16 19:19

转移到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下我不知道有没有这样相似的工具;
如果有人已有以上两个问题的答案,希望能拿出来交流。
附件
sdcc-makedemo.tar.gz
一个示例工程
(89.32 KiB) 已下载 2442 次
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

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

#2

帖子 eexpress » 2012-11-16 21:54

linux下最好使用avr。全套。

sdcc 编译的结果,效果不好。
● 鸣学
silaoA
帖子: 3
注册时间: 2012-11-16 19:06
系统: ubuntu/windows

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

#3

帖子 silaoA » 2012-11-18 17:32

为跨平台而修改得到的妥协方案
附件
sdcc-makedemo.compromise.tar.gz
为跨平台而修改得到的妥协方案
(148.42 KiB) 已下载 186 次
头像
rgwan
帖子: 264
注册时间: 2009-08-24 19:30
联系:

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

#4

帖子 rgwan » 2012-12-16 2:40

eexpress 写了:linux下最好使用avr。全套。

sdcc 编译的结果,效果不好。
Keil C51更不行。你去试试算圆周率的程序。速度sdcc比Keil C更快。
http://rgwan.byethost10.com/archives/1196
这个是我自制的STC下载软件。
CPU Intel Pentium E6500K(倍频超到13)
主板 MSI G41M-P21
内存 金邦2G DDR3 1333 金士顿 2G DDR3 1333 (降到1066)
硬盘 老三星60G(系统盘) 日立1T 数据盘
显卡 蓝宝石 HD5550 二代 256M GD5
电源 联想航嘉 228W “大”功率电源(汗)
键盘鼠标 联想
机箱 联想
显示器 联想!
操作系统 ubuntu maverick.
欢迎大家到我的小站:http://www.rwzy.co.cc
头像
rgwan
帖子: 264
注册时间: 2009-08-24 19:30
联系:

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

#5

帖子 rgwan » 2012-12-16 2:42

至于avr的写入更简单。并口/USBasp + avrdude。刷刷的写
CPU Intel Pentium E6500K(倍频超到13)
主板 MSI G41M-P21
内存 金邦2G DDR3 1333 金士顿 2G DDR3 1333 (降到1066)
硬盘 老三星60G(系统盘) 日立1T 数据盘
显卡 蓝宝石 HD5550 二代 256M GD5
电源 联想航嘉 228W “大”功率电源(汗)
键盘鼠标 联想
机箱 联想
显示器 联想!
操作系统 ubuntu maverick.
欢迎大家到我的小站:http://www.rwzy.co.cc
头像
sevk
帖子: 2060
注册时间: 2007-05-08 16:26
系统: arch
来自: 火星内核某分子内某原子核内
联系:

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

#6

帖子 sevk » 2013-04-26 12:47

学习了,多谢.
笔记本 :
F208S : gentoo
A460P i3G D6 : UBUNTU + WIN7
UN43D1 : UBUNTU + WIN7
1000人超级QQ群 LINUX + WIN : 31465544 或 18210387
回复