搜索
bottom↓
回复: 75

菜鸟教你Linux下开发51单片机

[复制链接]

出0入0汤圆

发表于 2016-2-4 09:53:40 | 显示全部楼层 |阅读模式
本人纯菜鸟一枚,以前在Windows下开发51单片机和其他MCU,自从经典的XP光荣的下岗后,换做win7,谁知这奇葩越用越慢,我得电脑Think-L440 刚做了系统用了两个月就卡的要死,用Keil编译一个大的工程,TMD玩命似的半天,Linux系统与Windows相比的优缺点就不多说了,请自己百度,呵呵。。。这事本菜鸟的第一篇的电子行业软件夸平台文章,以后还有有KICAD,以及Linux下开发STM32或ARM9内核+等教程。。。闲话少说切入正题,我用物理机加虚拟机的方式,集:Windows+wmware+Ubuntu12.04的组合,至于12.04版本以前的请自行修改软件更新源。。。。wmware和Ubuntu的安装请找“度娘”一搜数以堆计。。。。
Ubuntu安装成功后我们安装几个辅助工具:
        1.交叉编译器(就是Windows下的Keil啦)SDCC
        2.文本编辑工具 vi vim等等很多,个人比较喜欢用vim
第一步:安装交叉编译工具
        打开终端(Ctrl+Alt+T)输入:sudo apt-get install sdcc 回车(图SDCC1),提示输入管理员密码,SDCC回自动安装(图SDCC2),傻瓜吧,因为我已经安装完成所以提示(图SDCC3)安装完成后在终端输入“sdcc -v”如果看到(图SDCC4)的提示信息,恭喜您已经成功的走出第一步啦。
第二步:安装编辑器
        打开终端输入“sudo apt-get install vim”安装跟上面基本一样
第三步:编写一个流水灯程序测试
  1. #include "8051.h"

  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. uchar tab[8] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

  5. void Delay(uint xms)
  6. {
  7.         uint i,j;
  8.         for(i=xms;i>0;i--)
  9.         for(j=110;j>0;j--);
  10. }

  11. void main()
  12. {
  13.         uchar i;
  14.         while(1)
  15.         {
  16.                 for(i=0;i<8;i++)
  17.                 {
  18.                         P1 = tab[i];
  19.                         Delay(100);
  20.                 }
  21.         }
  22. }
复制代码

编写Makefile 文件
  1. led.hex : main.c
  2.         sdcc main.c
  3.         packihx main.ihx > led.hex
  4. clean:
  5.         rm -rf *.asm *.lst *.mem *.rst *.lnk *.rel *.sym *.ihx *.hex *.map
复制代码

编写完成后保存,在命令行输入“make”可以看到(图:编译)应经生成hex文件了,赶紧下载验证一下吧!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2016-2-4 10:03:22 | 显示全部楼层
后面的烧写环节少侠是怎么完成的呀?

出0入0汤圆

发表于 2016-2-4 10:04:09 | 显示全部楼层
li3p 发表于 2016-2-4 10:03
后面的烧写环节少侠是怎么完成的呀?

哈哈,问得好。

出0入0汤圆

发表于 2016-2-4 10:06:24 | 显示全部楼层
谢谢共享,电工只有不断探索才不会回农村

出0入0汤圆

 楼主| 发表于 2016-2-4 10:07:37 | 显示全部楼层
li3p 发表于 2016-2-4 10:03
后面的烧写环节少侠是怎么完成的呀?

临时还没做,烧写就简单多了吧,可以用传统的Windows烧写方式,Linux下的烧写正在研究

出0入0汤圆

 楼主| 发表于 2016-2-4 10:23:46 | 显示全部楼层

http://blog.csdn.net/muyiziye/article/details/43032979烧写软件及用法这位大神已经写得很清楚了

出0入0汤圆

发表于 2016-2-4 10:38:33 | 显示全部楼层
1328616904 发表于 2016-2-4 10:23
http://blog.csdn.net/muyiziye/article/details/43032979烧写软件及用法这位大神已经写得很清楚了 ...

好的,希望多交流,用开源的工具还是挺有意思的。
stcflash我用过,目前只支持到stc12,stc15还不支持。

出0入0汤圆

 楼主| 发表于 2016-2-4 10:43:05 | 显示全部楼层
li3p 发表于 2016-2-4 10:38
好的,希望多交流,用开源的工具还是挺有意思的。
stcflash我用过,目前只支持到stc12,stc15还不支持。 ...

下载可以在Windows下用STC-ISP软件,大不了建一个共享目录或者用Samba,就像当初2440 一样,Linux下编译,Windows下载

出0入0汤圆

发表于 2016-2-4 11:02:19 | 显示全部楼层
烧写有点麻烦,其他的完美!

出0入0汤圆

 楼主| 发表于 2016-2-4 11:13:24 | 显示全部楼层
Nexus 发表于 2016-2-4 11:02
烧写有点麻烦,其他的完美!

如果linux 下编译,Windows下烧写,给Ubuntu做一个samba然后用STC官方的烧写软件跟 Keil开发的没什么区别的,您可以试一下

出0入0汤圆

发表于 2016-2-4 11:20:43 来自手机 | 显示全部楼层
我原来写过kstcisp...现在扔在github上懒得管了

出0入0汤圆

 楼主| 发表于 2016-2-4 11:29:22 | 显示全部楼层
xwkm 发表于 2016-2-4 11:20
我原来写过kstcisp...现在扔在github上懒得管了

膜拜啊,让我这菜鸟无地自容

出0入0汤圆

 楼主| 发表于 2016-2-4 11:31:37 | 显示全部楼层
xiaoyigechaos 发表于 2016-2-4 11:29
既然没区别,还是就用windows好了,整那么麻烦

前面说了,一般的工程没事,大点的工程死慢,另外不知道哪位大神用过win10 + Keil,我曾经一次教训:相同的源码,在win7下编译可用,然win10下编译直接不行,我不知道啥原因,但我知道编译出来不行多么痛的领悟啊

出0入0汤圆

发表于 2016-2-4 11:41:58 | 显示全部楼层
STC的烧些确实很麻烦,没有官方支持的linux版本的在线烧写呀!

出0入0汤圆

发表于 2016-2-4 12:07:43 | 显示全部楼层
烧写确实是个问题

出0入0汤圆

发表于 2016-2-4 13:22:08 来自手机 | 显示全部楼层
1328616904 发表于 2016-2-4 11:31
前面说了,一般的工程没事,大点的工程死慢,另外不知道哪位大神用过win10 + Keil,我曾经一次教训:相同 ...

win10没有问题,不知道你用的什么版本的Keil

出0入9汤圆

发表于 2016-2-4 13:54:07 | 显示全部楼层
是在虚拟机是里跑ubuntu吗?

出0入0汤圆

 楼主| 发表于 2016-2-4 13:54:21 | 显示全部楼层
feer曼 发表于 2016-2-4 11:41
STC的烧些确实很麻烦,没有官方支持的linux版本的在线烧写呀!

没有,貌似有高手自己做的

出0入0汤圆

 楼主| 发表于 2016-2-4 13:54:56 | 显示全部楼层
sokou 发表于 2016-2-4 13:54
是在虚拟机是里跑ubuntu吗?

对的,虚拟机里面跑Ubuntu12.04

出0入9汤圆

发表于 2016-2-4 13:57:59 | 显示全部楼层
1328616904 发表于 2016-2-4 13:54
对的,虚拟机里面跑Ubuntu12.04

虚拟机里跑,电脑的整体运行速度也慢吧。我一台老电脑XP系统加个虚拟机跑XP。速度好慢。

出0入0汤圆

 楼主| 发表于 2016-2-4 14:01:33 | 显示全部楼层
sokou 发表于 2016-2-4 13:57
虚拟机里跑,电脑的整体运行速度也慢吧。我一台老电脑XP系统加个虚拟机跑XP。速度好慢。 ...

看你怎么灵活运行了

出0入0汤圆

发表于 2016-2-4 14:07:30 | 显示全部楼层
楼主说好的stm32的教程呢?

出0入0汤圆

发表于 2016-2-4 14:21:34 | 显示全部楼层
1328616904 发表于 2016-2-4 13:54
对的,虚拟机里面跑Ubuntu12.04

尝试过,没成功,最后就放着了........
最后还是滚到winodws上老实用STC烧写的,哎......

出0入0汤圆

 楼主| 发表于 2016-2-4 14:41:53 | 显示全部楼层
feer曼 发表于 2016-2-4 14:21
尝试过,没成功,最后就放着了........
最后还是滚到winodws上老实用STC烧写的,哎...... ...

没有试一下CSDN哪位大神的教程

出0入0汤圆

 楼主| 发表于 2016-2-4 14:42:25 | 显示全部楼层
higeo 发表于 2016-2-4 14:07
楼主说好的stm32的教程呢?

那么着急干嘛 ,正在研究

出0入0汤圆

发表于 2016-2-4 14:46:20 | 显示全部楼层
1328616904 发表于 2016-2-4 14:41
没有试一下CSDN哪位大神的教程

可以试试在ubuntu中文论坛找这方面的资料http://forum.ubuntu.org.cn/

出0入0汤圆

 楼主| 发表于 2016-2-4 14:48:51 | 显示全部楼层
feer曼 发表于 2016-2-4 14:46
可以试试在ubuntu中文论坛找这方面的资料http://forum.ubuntu.org.cn/

也是Linux爱好者?

出0入0汤圆

发表于 2016-2-4 14:53:43 | 显示全部楼层
xwkm 发表于 2016-2-4 11:20
我原来写过kstcisp...现在扔在github上懒得管了

支持stc15吗?

出0入0汤圆

发表于 2016-2-4 15:00:32 | 显示全部楼层
个人感觉初学者本身经验小,遇到问题后在WINDOWS环境中应用KEIL求助查找资料什么的会方便些,如再加上LINUX折腾,会难上加难吧。当然如果是LINUX高手另当别论

出0入0汤圆

 楼主| 发表于 2016-2-4 15:08:23 | 显示全部楼层
alphax64 发表于 2016-2-4 15:00
个人感觉初学者本身经验小,遇到问题后在WINDOWS环境中应用KEIL求助查找资料什么的会方便些,如再加上LINUX ...

萝卜白菜各有所爱

出0入0汤圆

发表于 2016-2-4 15:22:33 | 显示全部楼层
1328616904 发表于 2016-2-4 14:48
也是Linux爱好者?

算是吧!我从去前年开始用ubuntu当主系统,尽量用它来完成日常工作,实在完成不了的就在虚拟机中用windows完成

出0入0汤圆

发表于 2016-2-4 15:53:52 | 显示全部楼层
feer曼 发表于 2016-2-4 15:22
算是吧!我从去前年开始用ubuntu当主系统,尽量用它来完成日常工作,实在完成不了的就在虚拟机中用window ...

为什么大家都爱用ubuntu,不爱用RHEL?

出0入0汤圆

发表于 2016-2-4 15:56:39 | 显示全部楼层
先MK,以后用时再慢慢看

出0入0汤圆

 楼主| 发表于 2016-2-4 16:00:29 | 显示全部楼层
node720 发表于 2016-2-4 15:53
为什么大家都爱用ubuntu,不爱用RHEL?

我觉着Ubuntu比好帽子用着爽

出0入0汤圆

发表于 2016-2-4 16:36:56 | 显示全部楼层
node720 发表于 2016-2-4 15:53
为什么大家都爱用ubuntu,不爱用RHEL?

这个吗?
我的感觉是ubuntu版本更新稳定,按时半年一更2年一个稳定版本,并且跨版本升级要好一些,还有就是窗口操作很方便,并且要比其它linux发行版本窗口设计漂亮!

出0入0汤圆

发表于 2016-2-4 21:45:56 来自手机 | 显示全部楼层
node720 发表于 2016-2-4 15:53
为什么大家都爱用ubuntu,不爱用RHEL?

RHEL要钱啊

出0入0汤圆

发表于 2016-2-4 21:46:27 来自手机 | 显示全部楼层
li3p 发表于 2016-2-4 14:53
支持stc15吗?

早懒得管了。。。5年没用过51了

出10入120汤圆

发表于 2016-2-4 22:03:47 来自手机 | 显示全部楼层
大一点工程死慢?51还能有多大工程啊,我万行的程序量也就是10秒编译时间(keil win7 64 i5 12g)。估计楼主就是像换个口味玩玩,和系统无关^_^

出100入101汤圆

发表于 2016-2-4 22:58:15 来自手机 | 显示全部楼层
多大的工程,这么慢

出0入0汤圆

发表于 2016-4-10 06:13:20 来自手机 | 显示全部楼层
正是要用的东西,mark一下

出0入0汤圆

发表于 2016-4-10 07:01:24 来自手机 | 显示全部楼层
mark一下,电工用linux做开发总觉得是件蛋疼的事,之前试着yonglinux开发stm32也失败了

出100入101汤圆

发表于 2016-4-10 07:20:42 | 显示全部楼层
虚拟机装上容易,卸载难

出0入0汤圆

发表于 2016-4-10 07:37:18 | 显示全部楼层
虚拟机跑实在太慢了,装双系统。

出0入228汤圆

发表于 2016-4-10 10:33:43 | 显示全部楼层
现在流行docker了

出0入0汤圆

 楼主| 发表于 2016-4-11 11:02:46 | 显示全部楼层
wxws 发表于 2016-4-10 10:33
现在流行docker了

在线开发的?

出0入0汤圆

发表于 2016-4-11 11:11:28 | 显示全部楼层
一般人玩不转啊

出0入228汤圆

发表于 2016-4-11 12:18:26 | 显示全部楼层
本帖最后由 wxws 于 2016-4-11 12:22 编辑


比虚拟机更好的虚拟技术。

非常合适将开发环境、程序,一起部署出去。给人家,就是一个文件了。
不然linux在别人的环境下部署真的是累人的。


我就在黑群晖上,简单玩玩docker



比如第1个,是老外的智能家居的网关
第3个是MQTT服务器
第4个是自己用Python写的 花生壳 客户端,当然也能用 路由器带的。自己用,还是多用几个动态域名。
最后一个,是带vnc功能的ub虚拟机,用网页就直接vnc操作这个了。


你可以将你的开发环境,一起做成一个docker镜像,让人直接就能用了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2016-4-11 12:54:56 | 显示全部楼层
wxws 发表于 2016-4-11 12:18
比虚拟机更好的虚拟技术。

非常合适将开发环境、程序,一起部署出去。给人家,就是一个文件了。

改天试试

出0入0汤圆

发表于 2016-4-11 12:58:46 | 显示全部楼层
不错呦 不过得学习makefile

出0入0汤圆

发表于 2016-4-11 13:00:02 | 显示全部楼层
mark一下

出0入0汤圆

 楼主| 发表于 2016-4-11 13:00:33 | 显示全部楼层
sbk100 发表于 2016-4-11 12:58
不错呦 不过得学习makefile

高嵌入式这一行这个Makefile恐怕是必须的了

出0入9汤圆

发表于 2016-4-11 13:01:48 | 显示全部楼层
真佩服你的勇气啦,Linux够复杂的了,还要实现51编程,佩服。

出0入0汤圆

 楼主| 发表于 2016-4-11 16:16:53 | 显示全部楼层
一号纵队 发表于 2016-4-11 13:01
真佩服你的勇气啦,Linux够复杂的了,还要实现51编程,佩服。

我也是闲的没事折腾

出0入0汤圆

发表于 2016-4-11 16:25:12 | 显示全部楼层
期待楼主的烧录详解,一直不会的就是如何通过linux烧录程序到单片机

出0入0汤圆

发表于 2016-4-11 22:55:37 | 显示全部楼层
学习了,呵呵

出0入0汤圆

发表于 2016-4-12 07:30:01 来自手机 | 显示全部楼层
下载用我的软件解决←_←

出0入0汤圆

发表于 2016-4-12 08:25:18 | 显示全部楼层
当初用 avrdude 给 AT89S51 烧过程序,STC的那个下载协议研究过,没什么结果。
头像被屏蔽

出0入0汤圆

发表于 2016-4-12 12:59:57 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽

出0入0汤圆

发表于 2016-4-12 13:05:12 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

 楼主| 发表于 2016-4-12 13:05:49 | 显示全部楼层
bbs2009 发表于 2016-4-12 12:59
SDCC  不是有 winddows 版的吗? 为何一定要 在 linux 下编译 ,在 windows 下烧写?

sdcc.sourceforge.ne ...

要在windows下用Keil多好,搞电子的就得折腾
头像被屏蔽

出0入0汤圆

发表于 2016-4-12 13:18:47 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽

出0入0汤圆

发表于 2016-4-12 13:37:20 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 2016-4-12 13:54:13 | 显示全部楼层
我已经在LINUX下开发51程序几年了,如果是STC的51,可以使用stcflash, https://github.com/laborer/stcflash

出0入0汤圆

 楼主| 发表于 2016-4-12 14:20:08 | 显示全部楼层
max 发表于 2016-4-12 13:54
我已经在LINUX下开发51程序几年了,如果是STC的51,可以使用stcflash, https://github.com/laborer/stcfla ...

高手在民间啊

出0入0汤圆

发表于 2016-4-12 15:38:52 | 显示全部楼层
只是换系统而已,相比写ARM,FPGA,DSP跟LINUX驱动的人来说,我只是个渣渣
在linux我习惯vim+makefile+wine+keil c51+stcflash, 在windows上是vim+makefile+keil c51+stc-isp,所以两个平台上的开发环境几乎一样的

出0入0汤圆

发表于 2016-4-12 15:46:38 | 显示全部楼层
人生在于折腾,但表示还是windows下做开发比较方便。

出0入0汤圆

发表于 2016-4-12 15:52:19 | 显示全部楼层
直接 看成51开发LINUX了      
头像被屏蔽

出0入0汤圆

发表于 2016-4-12 19:51:26 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 2016-4-13 16:05:01 | 显示全部楼层
bbs2009 发表于 2016-4-12 19:51
请教一下 , 在linux 是否可运行 wine+keil c51+ stc-isp  ?

可以,要把USB口连接到WINE, 不过STC-ISP不太稳定,到了后面就老下载出错
头像被屏蔽

出0入0汤圆

发表于 2016-4-14 11:57:03 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 2016-4-14 12:03:25 | 显示全部楼层
楼主加油!!!

出0入0汤圆

发表于 2016-4-15 14:13:29 | 显示全部楼层
用Keil编译一个大的工程,TMD玩命似的半天,
在Linux下编译速度飞起来了哇,快了多少倍呀

出0入0汤圆

发表于 2016-4-15 14:14:23 | 显示全部楼层
请问一下,那些搞嵌入式Linux开发的也是这样Windows+虚拟机的方式进行开发么?

出0入0汤圆

 楼主| 发表于 2016-4-15 17:11:57 | 显示全部楼层
xiaowenshao 发表于 2016-4-15 14:14
请问一下,那些搞嵌入式Linux开发的也是这样Windows+虚拟机的方式进行开发么? ...

是的,至少我们公司是这样

出0入0汤圆

发表于 2016-4-15 17:43:32 | 显示全部楼层
说用windows慢,在windows里套虚拟机用linux还是图形界面,岂不是更慢吗?不能理解,直接全套linux不就好了

出0入0汤圆

 楼主| 发表于 2016-4-16 21:00:48 | 显示全部楼层
javabean 发表于 2016-4-15 17:43
说用windows慢,在windows里套虚拟机用linux还是图形界面,岂不是更慢吗?不能理解,直接全套linux不就好了 ...

全套不是有些软件用不了么
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-25 09:28

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表