菜鸟教你Linux下开发51单片机
本人纯菜鸟一枚,以前在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”安装跟上面基本一样
第三步:编写一个流水灯程序测试
#include "8051.h"
#define uint unsigned int
#define uchar unsigned char
uchar tab = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
void Delay(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void main()
{
uchar i;
while(1)
{
for(i=0;i<8;i++)
{
P1 = tab;
Delay(100);
}
}
}
编写Makefile 文件
led.hex : main.c
sdcc main.c
packihx main.ihx > led.hex
clean:
rm -rf *.asm *.lst *.mem *.rst *.lnk *.rel *.sym *.ihx *.hex *.map
编写完成后保存,在命令行输入“make”可以看到(图:编译)应经生成hex文件了,赶紧下载验证一下吧! 后面的烧写环节少侠是怎么完成的呀? li3p 发表于 2016-2-4 10:03
后面的烧写环节少侠是怎么完成的呀?
哈哈,问得好。 谢谢共享,电工只有不断探索才不会回农村 li3p 发表于 2016-2-4 10:03
后面的烧写环节少侠是怎么完成的呀?
临时还没做,烧写就简单多了吧,可以用传统的Windows烧写方式,Linux下的烧写正在研究 mangocity 发表于 2016-2-4 10:04
哈哈,问得好。
http://blog.csdn.net/muyiziye/article/details/43032979烧写软件及用法这位大神已经写得很清楚了 1328616904 发表于 2016-2-4 10:23
http://blog.csdn.net/muyiziye/article/details/43032979烧写软件及用法这位大神已经写得很清楚了 ...
好的,希望多交流,用开源的工具还是挺有意思的。
stcflash我用过,目前只支持到stc12,stc15还不支持。 li3p 发表于 2016-2-4 10:38
好的,希望多交流,用开源的工具还是挺有意思的。
stcflash我用过,目前只支持到stc12,stc15还不支持。 ...
下载可以在Windows下用STC-ISP软件,大不了建一个共享目录或者用Samba,就像当初2440 一样,Linux下编译,Windows下载 烧写有点麻烦,其他的完美! Nexus 发表于 2016-2-4 11:02
烧写有点麻烦,其他的完美!
如果linux 下编译,Windows下烧写,给Ubuntu做一个samba然后用STC官方的烧写软件跟 Keil开发的没什么区别的,您可以试一下
我原来写过kstcisp...现在扔在github上懒得管了 xwkm 发表于 2016-2-4 11:20
我原来写过kstcisp...现在扔在github上懒得管了
膜拜啊,让我这菜鸟无地自容 xiaoyigechaos 发表于 2016-2-4 11:29
既然没区别,还是就用windows好了,整那么麻烦
前面说了,一般的工程没事,大点的工程死慢,另外不知道哪位大神用过win10 + Keil,我曾经一次教训:相同的源码,在win7下编译可用,然win10下编译直接不行,我不知道啥原因,但我知道编译出来不行多么痛的领悟啊 STC的烧些确实很麻烦,没有官方支持的linux版本的在线烧写呀! 烧写确实是个问题 1328616904 发表于 2016-2-4 11:31
前面说了,一般的工程没事,大点的工程死慢,另外不知道哪位大神用过win10 + Keil,我曾经一次教训:相同 ...
win10没有问题,不知道你用的什么版本的Keil 是在虚拟机是里跑ubuntu吗? feer曼 发表于 2016-2-4 11:41
STC的烧些确实很麻烦,没有官方支持的linux版本的在线烧写呀!
没有,貌似有高手自己做的 sokou 发表于 2016-2-4 13:54
是在虚拟机是里跑ubuntu吗?
对的,虚拟机里面跑Ubuntu12.04 1328616904 发表于 2016-2-4 13:54
对的,虚拟机里面跑Ubuntu12.04
虚拟机里跑,电脑的整体运行速度也慢吧。我一台老电脑XP系统加个虚拟机跑XP。速度好慢。 sokou 发表于 2016-2-4 13:57
虚拟机里跑,电脑的整体运行速度也慢吧。我一台老电脑XP系统加个虚拟机跑XP。速度好慢。 ...
看你怎么灵活运行了{:lol:} 楼主说好的stm32的教程呢? 1328616904 发表于 2016-2-4 13:54
对的,虚拟机里面跑Ubuntu12.04
尝试过,没成功,最后就放着了........
最后还是滚到winodws上老实用STC烧写的,哎...... feer曼 发表于 2016-2-4 14:21
尝试过,没成功,最后就放着了........
最后还是滚到winodws上老实用STC烧写的,哎...... ...
没有试一下CSDN哪位大神的教程 higeo 发表于 2016-2-4 14:07
楼主说好的stm32的教程呢?
那么着急干嘛 ,正在研究 1328616904 发表于 2016-2-4 14:41
没有试一下CSDN哪位大神的教程
可以试试在ubuntu中文论坛找这方面的资料http://forum.ubuntu.org.cn/ feer曼 发表于 2016-2-4 14:46
可以试试在ubuntu中文论坛找这方面的资料http://forum.ubuntu.org.cn/
也是Linux爱好者? xwkm 发表于 2016-2-4 11:20
我原来写过kstcisp...现在扔在github上懒得管了
支持stc15吗? 个人感觉初学者本身经验小,遇到问题后在WINDOWS环境中应用KEIL求助查找资料什么的会方便些,如再加上LINUX折腾,会难上加难吧。当然如果是LINUX高手另当别论 alphax64 发表于 2016-2-4 15:00
个人感觉初学者本身经验小,遇到问题后在WINDOWS环境中应用KEIL求助查找资料什么的会方便些,如再加上LINUX ...
萝卜白菜各有所爱 1328616904 发表于 2016-2-4 14:48
也是Linux爱好者?
算是吧!我从去前年开始用ubuntu当主系统,尽量用它来完成日常工作,实在完成不了的就在虚拟机中用windows完成 feer曼 发表于 2016-2-4 15:22
算是吧!我从去前年开始用ubuntu当主系统,尽量用它来完成日常工作,实在完成不了的就在虚拟机中用window ...
为什么大家都爱用ubuntu,不爱用RHEL? 先MK,以后用时再慢慢看 node720 发表于 2016-2-4 15:53
为什么大家都爱用ubuntu,不爱用RHEL?
我觉着Ubuntu比好帽子用着爽 node720 发表于 2016-2-4 15:53
为什么大家都爱用ubuntu,不爱用RHEL?
这个吗?
我的感觉是ubuntu版本更新稳定,按时半年一更2年一个稳定版本,并且跨版本升级要好一些,还有就是窗口操作很方便,并且要比其它linux发行版本窗口设计漂亮! node720 发表于 2016-2-4 15:53
为什么大家都爱用ubuntu,不爱用RHEL?
RHEL要钱啊 li3p 发表于 2016-2-4 14:53
支持stc15吗?
早懒得管了。。。5年没用过51了 大一点工程死慢?51还能有多大工程啊,我万行的程序量也就是10秒编译时间(keil win7 64 i5 12g)。估计楼主就是像换个口味玩玩,和系统无关^_^ 多大的工程,这么慢 正是要用的东西,mark一下 mark一下,电工用linux做开发总觉得是件蛋疼的事,之前试着yonglinux开发stm32也失败了 虚拟机装上容易,卸载难 虚拟机跑实在太慢了,装双系统。 现在流行docker了 wxws 发表于 2016-4-10 10:33
现在流行docker了
在线开发的? 一般人玩不转啊 本帖最后由 wxws 于 2016-4-11 12:22 编辑
1328616904 发表于 2016-4-11 11:02
在线开发的?
比虚拟机更好的虚拟技术。
非常合适将开发环境、程序,一起部署出去。给人家,就是一个文件了。
不然linux在别人的环境下部署真的是累人的。
我就在黑群晖上,简单玩玩docker
比如第1个,是老外的智能家居的网关
第3个是MQTT服务器
第4个是自己用Python写的 花生壳 客户端,当然也能用 路由器带的。自己用,还是多用几个动态域名。
最后一个,是带vnc功能的ub虚拟机,用网页就直接vnc操作这个了。
你可以将你的开发环境,一起做成一个docker镜像,让人直接就能用了。 wxws 发表于 2016-4-11 12:18
比虚拟机更好的虚拟技术。
非常合适将开发环境、程序,一起部署出去。给人家,就是一个文件了。
改天试试{:lol:} 不错呦 不过得学习makefile mark一下 sbk100 发表于 2016-4-11 12:58
不错呦 不过得学习makefile
高嵌入式这一行这个Makefile恐怕是必须的了{:titter:} 真佩服你的勇气啦,Linux够复杂的了,还要实现51编程,佩服。 一号纵队 发表于 2016-4-11 13:01
真佩服你的勇气啦,Linux够复杂的了,还要实现51编程,佩服。
我也是闲的没事折腾 期待楼主的烧录详解,一直不会的就是如何通过linux烧录程序到单片机 学习了,呵呵{:loveliness:} 下载用我的软件解决←_← 当初用 avrdude 给 AT89S51 烧过程序,STC的那个下载协议研究过,没什么结果。 bbs2009 发表于 2016-4-12 12:59
SDCC不是有 winddows 版的吗? 为何一定要 在 linux 下编译 ,在 windows 下烧写?
sdcc.sourceforge.ne ...
要在windows下用Keil多好,搞电子的就得折腾 我已经在LINUX下开发51程序几年了,如果是STC的51,可以使用stcflash, https://github.com/laborer/stcflash max 发表于 2016-4-12 13:54
我已经在LINUX下开发51程序几年了,如果是STC的51,可以使用stcflash, https://github.com/laborer/stcfla ...
高手在民间啊{:lol:} 只是换系统而已,相比写ARM,FPGA,DSP跟LINUX驱动的人来说,我只是个渣渣
在linux我习惯vim+makefile+wine+keil c51+stcflash, 在windows上是vim+makefile+keil c51+stc-isp,所以两个平台上的开发环境几乎一样的 人生在于折腾,但表示还是windows下做开发比较方便。 直接 看成51开发LINUX了 bbs2009 发表于 2016-4-12 19:51
请教一下 , 在linux 是否可运行 wine+keil c51+ stc-isp?
可以,要把USB口连接到WINE, 不过STC-ISP不太稳定,到了后面就老下载出错 楼主加油!!! 用Keil编译一个大的工程,TMD玩命似的半天,
在Linux下编译速度飞起来了哇,快了多少倍呀 请问一下,那些搞嵌入式Linux开发的也是这样Windows+虚拟机的方式进行开发么? xiaowenshao 发表于 2016-4-15 14:14
请问一下,那些搞嵌入式Linux开发的也是这样Windows+虚拟机的方式进行开发么? ...
是的,至少我们公司是这样 说用windows慢,在windows里套虚拟机用linux还是图形界面,岂不是更慢吗?不能理解,直接全套linux不就好了 javabean 发表于 2016-4-15 17:43
说用windows慢,在windows里套虚拟机用linux还是图形界面,岂不是更慢吗?不能理解,直接全套linux不就好了 ...
全套不是有些软件用不了么
页:
[1]