Eclipse+Keil编译器开发调试STM32程序
本文所述的开发和调试方法不仅仅适用于STM32,还可用于其他任何CM0/CM3/CM4芯片。只是我用的是STM32开发板,所以取了这个标题。
已经有许多介绍用arm gcc开发STM32的文章了,只是arm gcc所用的汇编程序和链接文件的书写方法与Keil的相差甚远,习惯了Keil就不想再花时间去学这个了。况且,的效率高,毕竟是ARM自己开发的编译器。的方法。
我试过Keil提供的MDKEclipsePlugIn,按照官方的说明做,没有成功。也试过安装DS-5社区版,可惜装完后才发现它只认DS-5的编译器。调查发现,来编译。已有插件支持的编译器有Cross GCC、Microsoft Visual C++、MinGW GCC、Cross ARM GCC,的不完全相同,直接使用均无法编译。为了解决编译问题,我学习了Makefile,又花了数个夜晚研究如何在不开发新插件的情况下完成编译,因为我不会写eclipse插件。虽然也找到了方法,但用起来不怎么方便。比如,先设置为外部编译让eclipse自动生成makefile,然后把自动生成makefile的勾去掉、编写程序修改makefile中所有编译命令的参数,然后再用Build Project。但这样一来,每次添加新文件时都要重新生成并修改makefile。我只好继续苦苦寻索更简便的方法。直到某一天吃过饭爬楼梯的时候,脑子灵光一闪想出个点子,虽然尚未来得及验证,我已确定这个点子能方便地解决问题。彼时彼刻,我不由自主的感慨:感谢主!你若寻求他,他必使你寻见。
费时费力总算解决问题,为了让自己用起来方便,为了共享给有需要的朋友,我决定再费时费力地把步骤写下来。
温馨提示:①在翻墙状态下装eclipse插件就是快!
开发篇
安装JRE或者JDK,不需要做Java开发的话JRE已经够了。
安装eclipse。我用的LUNA版,JUNO版和更早的版本在安装gnuarmeclipse时会有问题。
安装MinGW。强烈建议将其安装在默认的C:\MinGW目录下,否则请添加环境变量MINGW_HOME。如:
添加C:\MinGW\bin、C:\MinGW\msys\\bin到环境变量PATH。
完成以上步骤后即可新建工程。新建C Project时Toolchains请选择Cross GCC
指定编译器的路径,prefix留空。此项在新建工程之后也可以修改。
在新建后的工程路径中添加若干文件夹用于存储源代码。
另外用一个文件夹专门存储scatter文件,我用的文件夹名LD。,。如不是这么做的,请注意修改armlink的参数。
需要用到的汇编文件,请将后缀改为大写的S。或者仍然用小写的s,点击[Window] –[Preferences] –[C/C++] –[File Types] –[New…] Source File。
编译篇
前面提到的点子是,,而是先调用一个程序,识别的参数,。下方是写好的代码和用MinGW编译好的程序。
(业余制作,非商用软件,请无视代码风格)。
下文介绍eclipse中的编译设置。在设置编译选项前,请将压缩包中的my-.所在的目录下。
[Project] –[Properties] –[C/C++ Build]
这是默认情况,不需要修改。
[Project] –[Properties] –[C/C++ Build] –[Tool Chain Editor]
这是默认情况,不需要修改。
[Project] –[Properties] –[C/C++ Build] –[Settings] –[Tool Settings]
请检查这里的设置。,的路径加入环境变量PATH。
的名字:
添加预定义,有值的宏尝试=号,如HSE_VALUE=16000000。熟悉Keil的应该知道为什么要定义__MICROLIB。
添加include路径,添加时请不要直接拷贝路径。如果是直接拷贝的路径,要么将\改为/,要么加上引号。注意下图中Include paths的前两个,可与Keil的编译选项对照,Keil是把这两个路径放在最后的。
将CC flags改为-c --cpu=Cortex-M3 --apcs=interwork --split_sections --diag_style=gnu --omf_browse=$(@:.o=.crf) --depend=$(@:.o=.d)
其中$(@:.o=.d)是Makefile的语法,意思是生成
eclipse+keil编译器开发调试stm32程序 来自淘豆网m.daumloan.com转载请标明出处.