Linux系统下烧录单片机 有些人说Linux下怎么开发单片机程 序? 我们学得都是在Windows下的开发工具和烧录工具。其实这 只是中国的情况,中国大都是用Windows系统的。所以我们也只接 触到Windows下的开发工具。在国外,许多大牛是不用Windows的。那么,他们如果要做单片机怎么办?肯定没问题的,Linux也有许多的单片机和嵌入式的开发工具。下面,我以51系列单片机为例,介绍一下怎么使用Linux系统玩单片机。 首先,说一下我的硬件和软件情况。 硬件: 一台笔记本、 一个51单片机开发板 (这个在网上有很多卖,也就150左右的价格) 。单片机芯片有两块 :一块是Atmel的AT89S52, 另一块是STC的STC89C52RC 。USB转串口线一根(串口通信和STC下载用)。USBISP下载线一根(AT89S52下载用)。 软件: 操作系统:Ubuntu 11.04 (内核2.6.38-10-generic)、 sdcc(单片机C语言编译器)、 avrdude(AT单片机下载程序)、gSTCISP(STC单片机下载程序) 、objcopy(GUN 开 发工具里的 ,应该默认Linux都会安装) 操作系统的安装就不讲了。 SDCC可以在网上下到源代码然后编译 安装。/*SDCC也有Windows版本,不过我这只讲Linux下的东西,如果有兴趣请自己百度Google一下*/ 不过这样很麻烦,而且不一定安装的上。我们的ubuntu 有超级牛力(不知道这个?在终端下输入apt-get就知道啦。)直接在终端下输入以下命令: sudo apt-get install sdcc sdcc-doc 先讲AT89S52的下载 首先是安装AT89S52的下载软件 ,还是用ubuntu的超级牛力: sudo gedit /etc/avrdude.conf 在最后面加入AT89s52的相关信息(这是Joy Shukla写的) #------------------------------------------------------------ 然后保存 就可以烧录了 你可以把命令中的”跑马灯.hex”换 成你自己的程序。 如果觉得 命令太长 太难记, 那么推荐你使用 makefile来自动完成。 我是这样做的 在工作目录下建立一个makefile, 内容如下: ###########内容开始############# main: sdcc liushui.c #注意 这一行以及一下每行开头都是一个Tab packihx liushui.ihx>liushui.hex #SDCC默认的输出格式是ihx 我 们把它转换成hex sudo avrdude -p 8052 -c usbasp -e -U flash:w:liushui.hex #这就是烧录的语句,其实最后的格式是ihx也可以烧录的 ##########内容结束############### 保存之后 在工作目录下只要输入一句 make 就 可以完成 编译 烧录 一步到位了。 /*当然你得保障程序能正常编译,下载 器和单片机都连接好了*/ 接下来讲讲如何烧录STC单片机 STC的程序编写 不用我说了 。它的下载是用gSTCISP 貌似是一个中国人写的,还是图形界面的。 gSTCISP 下 载地址如下 http://forum.ubuntu.org.cn/download/file.php?id=104628&sid=767b624faf73a36c71fcd4f8111773e gSTCISP下载要求的格式是bin 我 在网上也没找到所谓的Hex2bin 程序 ,不过 发现用 objcopy 也 可以把 hex文件转化为bin'文件,姑且我就先这么用了。 生成hex文件后,用如下命令将hex转化为bin objcopy -I ihex -O binary liushui.hex liushui.bin # I 和O 都 是大写 然后 打开gSTCISP (我直接把它cp到了/usr/bin, 就可以直接在提示符下输入gSTCISP运行了) 选择port(端 口) 我的是/dev/ttyUSB0 然后选择文件 选择刚刚生成的bin文件 点击DownLoad 好像STC的 是要先断电再上电的时候 就能把程序写入单片机了 当你看到Program OK Have already encrypt.就说明你烧录成功啦。 本文转自:http://www.360doc.com/content/13/0824/16/12756358_309589029.shtml 写在最后: 今天突发奇想,想在linux下学习51单片机,百度了无数次,也试了很多很多人发表的方法,我是看了这篇文章之后,有了一些头绪,但是还是没成功,原因就是我在编译51程序的时候,系统提示找不到51的头文件,很是头疼。。我百度,谷歌,后来就看外网,还是一无所获。。不知哪位大神能否给些指点,感激不尽 |