本帖最后由 ataudio 于 2015-11-20 17:09 编辑 L476的板子收到一段时间了,尽管开始就冲着低功耗来的。但目前手头F407的开发设备正在收尾,没太多时间熟悉L476,不过同为M4核,几乎完全可pin2pin的设计,相信后期的开发移植不是太大的问题。 当然,L476毕竟是新的芯片,要说短期能开发什么大应用,对我这种水平来说,比较困难。但基础的配置和应用,前面各位大神都有很好的分享了。我再次再次抛几块砖头了。 因为开发板分享有了时间限制,所以先占个位置,后续修改补充。支持论坛分发的开发板发布开发共享,物尽其用。 看到沐版和网友的回复,亚历山大。希望大家莫给予这么大的期望嘛,我能拿出来的东东当不起“神奇”二字。 首先是一份应该称得上详尽的环境配置和样例,有兴趣的网友皆可以按此配置成功: 1. 前言 STM32比较常用的开发环境是MDK跟IAR,但是这两个都是商业软件。Eclipse作为开源界最常用的IDE,功能强大,扩展性强大,关键还可以免费使用。使用量大,无论咨询资料,还是请教高手,途径更多,“借力”更方便。 既然用到了Eclipse,编译器当然要考虑到同样开源免费的GCC。本文就是介绍利用Eclipse+GCC开发STM32的基本方法,不涉及基于OpenOCD的GDB调试。当然,操作系统仍然是Windows。 系统:Windows 7,平台:Eclipse+GCC的STM32开发环境,具有网络条件。 题外话:学习和使用这一个配置方案基于2点。1,公司的windows系统,使用破解的MDK。结果,我收到了律师函。随后和Keil代理公司通电话,想要采购价格,据说很高很高,但最后居然没成功地把报价邮件发到我的邮箱;2、为了能干活,尝试stmcu.org论坛里QianFan指导的Ubuntu下交叉编译ARM,结果ST-Link的驱动配置成功,但无法工作。而且Linux也不是办公的好选择。最后,还是灰溜溜回到了Windows。 配置过程借鉴了网友的文章,修正了其中的一些错误。 Eclipse+GCC配置成功并推广的话,也顺手替公司省了不少银子。 闲话少说,言归正传吧。 2. 编译环境安装说明ARM开发,总是按照开发板为例建立模版配置,然后在此模版下,进行实际项目开发。无论MDK还是IAR,还是其它IDE,莫不如是。 本文先STM32F4Discovery开发板为例说明Eclipse环境配置。其它的开发板,如STM32L476RGNecleo版,配置大同小异。涉及到不同配置点时,我会分别对F407和L476两种芯片的配置方法做出说明。最后的点灯程序,则是完整版的L476程序。按照L4与M4其它芯片的pin2pin替换,同样的内核,估计可以方便移植很多F407的程序。 我们配置平台需要用到的软件和对应版本如下图: 1、Java Runtime Environment(JRE):Eclipse是Java编写的,没JRE的话Eclipse跑不起来。下载地址:http://www.java.com/en/download/manual.jsp安装简单,一路Next。 2、最新版的Eclipse:下载地址http://www.eclipse.org/downloads/ ,推荐下载Eclipse IDE for C/C++ Developers版本,如果是其他版本还需要另外安装CDT等插件,此版本集成了CDT。下载下来解压,就可以双击运行里面的eclipse.exe了。 3、GCC for ARM。下载地址:http://launchpad.net/gcc-arm-embedded,安装版(带有-win32.exe)。安装也是一路Next,安装完后最后有一项Add path toenvironment variable. 一定要勾上。此版本的GCC里面的所有命令都是带arm-none-eabi-前缀的,即使这样加到PATH环境变量也不会对装有原版的GCC有任何影响。安装完后在CMD命令提示符中输入arm-none-eabi-gcc-v,应该会显示GCC的版本信息。如果提示找不到命令,就说明GCC的安装有问题。
4、MinGW,用于编译Win32的编译工具集,:下载地址:http://sourceforge.net/projects/mingw/files/Installer/,下载mingw-get-setup.exe,里面附带了一个叫MSYS的Linux Shell工具包,这里只需要用到里面的Make工具。双击运行后点里的Install,安装好后MinGW自带了一个图形安装器,如下图:
其中最下面一个msys-base必选,其他的如果不知道是干嘛的就没必要选了。勾选后在Install菜单中选择Apply Changes开始安装。 安装好后需要自行添加路径到系统的PATH环境变量。方法是在计算机图标上右击属性,在高级系统设置菜单中点击环境变量按钮,在用户变量或者系统变量中找到PATH,默认安装的就把“C:\MinGW\bin;C:\MinGW\msys\1.0\bin;”添加在最后面。如果添加在用户环境变量里就只对当前登录的用户有效,系统变量则对所有用户有效。如果装在其他分区的记得做相应修改。完了之后重新开一个CMD窗口,输入make -v,如果正常显示make的版本信息,说明安装成功了,如果找不到命令,说明安装有问题。系统环境变量添加的页面如下:
5、STM32官方固件库,F4的固件库下载地址是http://www.st.com/web/en/catalog/tools/PF257901(STM32F4xx_DSP_StdPeriph_Lib_V1.6.1) 。L4的固件库下载地址:https://www.stmcu.org.cn/document/list/index/category-914(STM32Cube_FW_L4_V1.1.0)。其他芯片在官网也可以找到。下载后解压备用。 6、ST-Link Utility,ST-Link的工具包,用于向开发板中下载程序。如果是其它Nucleo板子,可以直接将生成的.hex文件拷贝到更目录,不用下载。ST-Link Utility的下载地址:http://www.st.com/web/en/catalog/tools/PF258168 7、mBed的源码,其实只用到两个TOOLCHAIN_GCC_ARM相关的文件,下载地址:http://github.com/mbedmicro/mbe ... G/TOOLCHAIN_GCC_ARM(F407);http://github.com/mbedmicro/mbed/tree/master/ libraries\mbed\targets\cmsis\TARGET_STM\TARGET_STM32L4\TARGET_NUCLEO_L476RG\TOOLCHAIN_GCC_ARM(L476)。 在Eclipse下面开发可以采用用Eclipse管理Makefile的方法,也可以采用CDT自带的Cross GCC插件。本文选用Cross GCC插件,自己配置GCC 编译命令的方法。 |
试试重定向printf()
...
#undef __GNUC__
#ifdef __GNUC__
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif
...
PUTCHAR_PROTOTYPE
{
/* Place your implementation of fputc here */
HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF);
return ch;
}
使用eclipse+gcc编译的,请注释掉重定向printf()时的:
#undef __GNUC__
方便、简单~~~