eclipse中创建stm32工程_esplise stm32

3. 将固件库中的STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template目录下的以下4个选中的文件 main.c,  stm32f10x_conf.h,  stm32f10x_it.c,  stm32f10x_it.h放在user文件夹下:

4. 将固件库目录F:\stm32f103官方固件库 STM32中文编程参考手册\stm32f103官方固件库+STM32中文参考手册+\STM32F10x_StdPeriph_Lib_V3.5.0*STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\gcc_ride7*

下的startup_stm32f10x_md.s放在工程目录下的startup文件夹下,并将后缀改成大写.S。这个文件的选择要根据自己选用的单片机型号的大、中、小容量进行选择,我用的是STM32F103C8T6,属于中容量,所以选择startup_stm32f10x_md.s

这里要注意:因为我的eclipse用的是GCC编译,所以要从gcc_ride7下面拷贝.s文件,有的参考链接里说的是从arm\目录下拷贝,这个要根据编译器的不同要进行选择。

根据里面是

5. 将F:\stm32f103官方固件库 STM32中文编程参考手册\stm32f103官方固件库+STM32中文参考手册+\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template\TrueSTUDIO\STM3210B-EVAL目录下的stm32_flash.ld文件拷贝到工程目录下,这个是用来链接的文件。

注意:这个文件的选择要根据单片机的型号,B-EVAL,C-EVAL,Z-EVAL对应不同的单片机,我的单片机是STM32F103C8T6,所以选择STM3210B-EVAL,具体的可以打开这个ld文件看一下里面的flash大小和ram大小是否和你的单片机datasheet上写的对应。

datasheet上的大小说明:

至此,所用到的库和链接文件以及.s文件拷贝完。

最后,删除工程录下固件库目录下的Projects 和 Utilities 两个文件夹。按F5或右击工程点击Refresh刷新工程。

至此,工程创建完成。

二、 接下来是工程的配置:

在工程上右击–》properties, 接下来按照图中进行以下操作。

1. 设置cortex家族

2. 表示使用中型的MCU和外围固件

3. 加入头文件的路径

4. 设置链接文件

5. 设置Toolchains:

点解确定,至此编译环境配置完成。

三,对main.c文件进行修改,删除里面没有用的东西,只留下main()函数以及里面的while(1), 然后进行编译,

这时会出现以下编译错误:

ERROR:register may not be the same – strexb r3,r2,[r3]等错误的

解决方法如下:
打开工程文件\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport下的core_cm3.c,找到
 __ASM volatile (“strexb %0, %2, [%1]” : “=r” (result) : “r” (addr), “r” (value) );
 __ASM volatile (“strexh %0, %2, [%1]” : “=r” (result) : “r” (addr), “r” (value) ); 两行,更改如下
 __ASM volatile (“strexb %0, %2, [%1]” : “=&r” (result) : “r” (addr), “r” (value) );

__ASM volatile (“strexh %0, %2, [%1]” : “=&r” (result) : “r” (addr), “r” (value) );

修改完成后,保存!注意,请再选中工程项目,刷新F5,再一次编译。刷新是很重要的。

另外,有可能还会出现下面的make错误,

解决方法:如下图,将Current builder改成 CDT Internal Builder,点击OK。进行编译,就没有问题了。

至此,整个创建和编译配置的完成。

作者:普通网友

物联沃分享整理
物联沃-IOTWORD物联网 » eclipse中创建stm32工程_esplise stm32

发表回复