eclipseARMGNUSTM32F103jlinkcyminfreeRtos开发环境搭建Word格式文档下载.docx
《eclipseARMGNUSTM32F103jlinkcyminfreeRtos开发环境搭建Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《eclipseARMGNUSTM32F103jlinkcyminfreeRtos开发环境搭建Word格式文档下载.docx(18页珍藏版)》请在冰豆网上搜索。
3、其他配件,如USB串口、电源等
需要准备的软件【推荐用比较新的版本】有很多。
分别是
1、jdk[根据自己带你电脑选择32或者64位]
2、eclipse[C++版本、根据自己带你电脑选择32或者64位]
3、GNUToolsARMEmbedded【选择安装版本的】
4、Cygwin【建议安装离线版本】
5、JLinkARM【4.4版本,建议尝试高版本】
安装完后打开eclipse,进行安装插件
此插件需要现在网上http:
//gnuarmeclipse.github.io/下载下来,之后解压,然后安装【具体安装步骤,自行XX,提示,可能安装比较慢,请耐心等待】
安装完成后,eclipse应该可以进行正常的编译开发等工作了,所有配件的路径应该已经完成,如果没有,自行添加环境变量
如图,新建一个工程,注意我选用的芯片是STM32F103RB,里面的配置请自行变通,正常情况下,选中新建的工程后,点击小锤子图标就可以正常编译了,可以看到,在debug目录下生成了hex文件
下面说一下怎么生成bin,右键工程总目录文件夹的图标,按图选择
这样配置后,重新编译,会生成相应的bin,用stlink或者jlink直接下载到芯片中,如果程序正常,可以发现工作已经正常
接下来说如何在eclipse中使用快捷下载,首先点击图标
,打开
双击
就可以新建下载方案了,直接仿照图中的内容就可以了,这里面的jlinkflash.txt里面的内容【根据实际情况可以改动】是
h
execdevice=stm32f103rb
loadbinDebug/test.bin0x8000000
r
g
qc
把这个文件放在工程主目录下面,如下图
配置好后就能使用sw方式进行直接下载,下载完毕后,芯片马上开始运行,这里不说调试了,本人感觉在具体的开发工作中基本用不到调试,需要的朋友可以自行XX,网上有模糊的教程,需要一定的领悟能力
在开发过程中,需要使用较多的printf函数,但是感觉armgnu对这个支持的没有MDK好,下面我说一下我配置printf的方法,首先打开编译器自带的stdio.h把原来的printf函数声明注释掉,并重新声明,如图
接下来用usart实现printf,如图【除了STM32相关的头文件外,需要包含stdio.h和stdarg.h】
之后就能愉快的使用printf函数了,注意必须先进行串口初始化的处理工作
这里有一点需要提醒一下,eclipse是以具体文件夹下里面的文件进行组织工程的,这一点和MDK是不一样的,如果在文件夹下面,不想进行编译的文件可以通过一个操作去过滤,具体操作是右键点中目标文件或文件夹,如图
应用后,再次编译,编译器会跳过该文件或文件夹,反之亦然【提醒一下,自动生成的DEMO工程默认是屏蔽一部分STM32的一些标准驱动文件的,可以使用该方法进行打开】
完成到这里,就可以愉快的开发了,如果想往里面添加相应的文件,分别放到src和include中,如果额外的包含头文件或者其他库之类的,需要打开这个界面【如图】,进行配置,里面其他的参数,请自行领悟
此时,已经可以自行添加源文件,更好的进行开发了,实际已经可以满足现实的开发任务了,这里提醒一下,网上很多例程是基于MDK和IAR的。
需要修改相关的内容,特别是汇编部分
当系统复杂到一定程度,使用传统的轮循就会感觉到压力越来越越大,当然结合定时器,有一定经验的人依然能够完成高质量的程序,不过如果是联合开发,就会很难,且换其他人进行维护,也会困难,使用操作系统是一个很好的解决方法
最后说一下FREERTOS,是一个完全免费的,感觉比ucos有前途,现在很多蓝牙、wifi相关的芯片都开始支持这个,此时在嵌入式领域,风头正健
首先下载官方提供的9.0版本的FREERTOS,可以看到里面已经有了STM32相关的MDK版本的例子了,有兴趣的可以测试一下
但是GNU版本的并不适合该教程,是针对一个收费的工具,下面就开始讲解具体的操作,
首先需要的文件是,如图
port.c和portmacro.h的参考源位置,其他的文件的位置请自行领悟
修改port.c注释掉,如图三个函数声明,并引用port.h
新建port.h,内容为
下面修改vectors_stm32f10x.c,如图
首先添加引用
然后修改里面的三个参数,如图
修改FreeRTOSConfig.h,如图
这样的话,应该就能编译通过了,如果不行,自行补全相关的内容【一般是找不到头文件什么的】
之后修改mian函数,创建两个任务,主要利用printf函数输出内容,可以参考,如图
此时,可以通过串口调试工具,和具体的LED,已经正常工作,如图