基于Eclipse搭建STM32开源开发环境

最近项目不忙,想着没事看看简单的嵌入式,弄弄物联网什么的。于是就从廉价的STM32开刀了。因为一直是做PC软件开发的,那VS的智能感知那叫一个爽啊,相比之下,觉得这个Keil简直就像文本编辑器一样low。于是想换一个开发环境,就把矛头指向了Eclipse,以前PC开发也正好用过。(其实拿他写C++也是一样low,IDE界VS世界第一 o( ̄ε ̄*))

  • 环境搭建

  1. Eclipse
        这是一个IDE的框架,去它的官网就可以下载了(http://www.eclipse.org/downloads/),要下载这个“Eclipse IDE for C/C++ Developers”,优先64位的,电脑不支持64位的话,就下载32位。这个解压就可以使用了,无需安装。

    image
        如果不能运行的话,应该是没有安装JAVA运行环境,去官网下载安装即可(http://www.oracle.com/technetwork/java/javase/downloads/index.html)。

  2. GNU ARM Eclipse Plug-in
        要搭建针对ARM的开发环境还需要下载针对ARM开发的插件,这样才能够新建针对ARM开发的项目,这里使用GNU ARM Eclipse Plug-in,下载地址如下: http://sourceforge.net/projects/gnuarmeclipse/
        话说你们知道怎么安装吧,“Help”-“Install New Software”-“Add”-“Archive”,安装时候最好断网,因为他好像会检查更新那就非常尴尬了。

  3. 编译器
        GNU ARM Eclipse Plug-in支持的编译器还是比较多的,这里这列出几个我知道的下载地址:
    ·GNU Tools for ARM Embedded Processors,下载
    https://launchpadlibrarian.net/231144227/gcc-arm-none-eabi-5_2-2015q4-20151219-win32.exe
    ·Yagarto,官网http://www.yagarto.org/,下载https://sourceforge.net/projects/yagarto/
    image

  4. 一般教程到这就基本结束了,但是这样生成的工程会出现这样的错误:
    "make" not found in PATH ,"echo" not found in PATH

    image
    所以要加上下面的步骤

  5. mingw
    我也不知道为什么要下这个,反正没有就算不行。官网http://www.mingw.org/,下载http://www.xiazaiba.com/html/29981.html
    解压后,还有给Eclipse添加PATH环境变量,“Window”-“Preference”
    image

最后分享一张点亮LED的成果(8块钱的STM32F0是在对不起了)

IMG_20160309_171200

 

  • 其实还有一种不用这么折腾的方法,就是下载ST公司的“System Workbench for STM32”,它也是基于Eclipse集成好的IDE。

    但是我用它编译的bin文件,没法下载到单片机上,提示“程序文件不是0x8000000和0x20000000区域的”,不知道为什么,尚未解决。

转载于:https://www.cnblogs.com/chihirosan/p/5258946.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/257572.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据中心不再有空调、风扇等冷却装置会怎样?

数据中心的变革有望依赖移动设备实现,手机里轻便设备或将成为下一代数据中心的基础设施,服务Google和Facebook等大型的应用程序服务企业。同时,这种商业模式也会构建新一代企业的发展形态,为初创企业带来前所未有的机遇。 CSDN大数…

.NET 数据库缓存依赖策略实现

处理大型门户网站 一般都需要 使用缓存技术这个web加速器在 PHP 和 java 一般 使用的是 基于squid 来做. 当然在 windows .NET 平台也是可以的 squid有 windows版本.这个以后再去研究,现在 就介绍一下 .NET 自带的 缓存策略.Microsoft的petshop就用到了它;  一、基于数据库触…

大数据面临的挑战:当大数据遭遇云计算

本文讲的是大数据面临的挑战:当大数据遭遇云计算,大数据正在彻底改变IT世界。那么,什么样的数据谈得上数据呢? 根据IDC的报告,未来十年全球大数据将增加50倍。仅在2011年,我们就将看到1.8ZB(也就是1.8万亿GB)的大数据创建产生。这…

Climbing Stairs - Print Path

stair climbing&#xff0c; print out all of possible solutions of the methods to climb a stars, you are allowed climb one or two steps for each time; what is time/space complexity? &#xff08;use recursion&#xff09; 这道题难是难在这个ArrayList<Strin…

java 单例设计_Java 之单例设计模式

设计模式: 对问题行之有效的解决方式, 其实它是一种思想.单例设计模式解决的问题:就是可以保证一个类在内存中的对象唯一性. 即单个实例.比如对于A 和 B 两个程序使用同一个配置信息对象时, A 对配置信息作出修改, B 也与之对应的更新配置信息, 即需要保证该对象的唯一性.如何保…

Javascript之RegExp

RegExp对象的构造器 new RegExp(pattern[, flags]) pattern 正则表达式文本flags 该参数可以是下面几个值的任意组合&#xff1a;g 全局匹配i 忽略大小写m 让开始和结束字符&#xff08;^ 和 $&#xff09;工作在多行模式&#xff08;也就是&#xff0c;^ 和 $ 可以匹配字符串中…

DS汽车通过采用沉浸式虚拟现实技术实现展厅转型

PSA集团&#xff08;PSA Group&#xff09;旗下的高端品牌DS汽车公司&#xff08;DS Automobiles&#xff09;采用达索系统的“虚拟车库&#xff08;Virtual Garage&#xff09;”行业解决方案为全新的SUV车型DS 7 CROSSBACK提供全面支持&#xff0c;推动其展厅转型&#xff0c…

java 日历记事本_calendar 一个用java编写的日历记事本. 具有正常日历功能;也可以用于在不同日期记录下当日重要的事情 - 下载 - 搜珍网...

日历记事本/日历记事本/build/classes/日历记事本/CalendarPad$1.class日历记事本/日历记事本/build/classes/日历记事本/CalendarPad.class日历记事本/日历记事本/build/classes/日历记事本/Month.class日历记事本/日历记事本/build/classes/日历记事本/NotePad.class日历记事…

要的需求 ip提取网站源码带采集 要求是PHP源码

求。ip提取网站源码带采集 要求是PHP源码。必须带采集类似 小峰IP提取网站&#xff0c;安小莫IP提取&#xff0c;迷惘IP提取&#xff0c;冰封IP提取免费类型的 不要淘宝类型的 200 转载于:https://www.cnblogs.com/PS-apple/p/4342866.html

设计模式之PHP项目应用——单例模式设计Memcache和Redis操作类

1 单例模式简单介绍 单例模式是一种经常使用的软件设计模式。在它的核心结构中仅仅包括一个被称为单例类的特殊类。通过单例模式能够保证系统中一个类仅仅有一个实例并且该实例易于外界訪问。从而方便对实例个数的控制并节约系统资源。假设希望在系统中某个类的对象仅仅能存…

java 跳转action_JS 跳转到指定Action | 学步园

最近项目需要在JS中跳转到指定的Action。通过不断的实验和查资料&#xff0c;终于成功。Java SSH2 架构下&#xff0c;正常 配置Action完毕。在xxx.jsp下window.location" ";例如&#xff1a;window.location" /user/ResAction> ";其中ResAction是配置文…

【转】康拓展开

———本文转自&#xff1a;http://www.cnblogs.com/1-2-3/archive/2011/04/25/generate-permutation-part2.html 1、康托展开  康托展开的公式是 Xan*(n-1)!an-1*(n-2)!...ai*(i-1)!...a2*1!a1*0! 其中&#xff0c;ai为当前未出现的元素中是排在第几个&#xff08;从0开始&a…

java类排序

1、实现Comparator接口 public static class ComparatorImpl implements Comparator<Element>{Overridepublic int compare(Element o1, Element o2) {if(o1.unitPrice > o2.unitPrice)return 1;else if(o1.unitPrice < o2.unitPrice){return -1;}else{return 0;}}…

java jni so_java 用jni调用so全过程

这几天一直在研究JNI的开发过程&#xff0c;顺便把NDK环境搭建一起总结下。在windows环境下开发jni需要c/c编译器的支持&#xff0c;网络上我看很多人使用cygwin。呵呵我不是很喜欢使用它&#xff0c;感觉安装起来挺麻烦的。我使用GNUStep&#xff0c;下载地址http://www.gnust…

ios开发之 -- 自动轮播图创建

这里是oc版本的&#xff0c;简单记录下&#xff1a; 具体代码如下&#xff1a; 1&#xff0c;准备 #define FRAME [[UIScreen mainScreen] bounds] #define WIDTH FRAME.size.width #define HEIGHT FRAME.size.height 2&#xff0c;具体实现 //scrollview的添加_bigScrollView…

学习进度(2016.3.13)

第二周所花时间&#xff08;包括上课&#xff09;14小时代码量&#xff08;行&#xff09;138行博客量&#xff08;篇&#xff09;4篇了解到的知识点动态数组的定义初始化和使用&#xff0c;指定范围获得随机数转载于:https://www.cnblogs.com/zzcs/p/5272365.html

binaryoperator java_BinaryOperatorT接口的用法示例

java Function函数中的BinaryOperator接口用于执行lambda表达式并返回一个T类型的返回值&#xff0c;下面的BinaryOperator用法示例让你简单了解一下。import java.util.function.BinaryOperator;public class TestDemo {public static void main(String[] args) {BinaryOperat…

线性表的顺序存储结构之顺序表类的实现_Java

在上一篇博文——线性表接口的实现_Java中&#xff0c;我们实现了线性表的接口&#xff0c;今天让我们来实现线性表的顺序存储结构——顺序表类。 首先让我们来看下顺序表的定义&#xff1a; 线性表的顺序存储是用一组连续的内存单元依次存放线性表的数据元素&#xff0c;元素在…

Linux下安装jdk

参考于&#xff1a;http://www.cnblogs.com/caosiyang/archive/2013/03/14/2959087.html 一、准备阶段 ①下载jdk-6u45-linux-i586.bin&#xff0c;通过xftp上传至Linux系统中 ②在命令行执行 ./jdk-6u45-linux-i586.bin&#xff0c;生成目录jdk1.6.0_45 ③移动到/usr/share下&…

JDK source 之 ArrayList 需要注意事项

线程安全 ArrayList内部没有实现原子性操作&#xff0c;所以是非线程安全的。如果需要在线程安全的环境下使用List的话&#xff0c;需要使用Vector 或者CopyOnWriteArrayList&#xff0c;具体场景&#xff0c;自行深入了解。 扩容算法 // minCapacity 为需要的最小容量 private…