打印
[STM32F1]

STM32 Eclipse开发环境之手撸版

[复制链接]
2445|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yangwenguan|  楼主 | 2015-12-4 22:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

搞了几个晚上, 还好完工了, 参考了AC6.

实例为正点原子的led例程, 其他例程没试过, 不知有没有问题.

1. 启动eclipse, 创建项目, File->New->C Project, 在弹出对话框中,
Project Name: test
Project type : Empty Project
Toolchains: Cross GCC

一路next, Finish

2. 将以下源文件加入项目.
右击test项目名, 在弹出菜单中,选中New->Floder,
并在弹出对话框中,点击Advanced按钮, 选中Link to alternate location(Linked Folder),
点击Browse, 查找对应的源码文件夹, 以导入到项目中.
CM3{
core_cm3.c
core_cm3.h
stm32f10x.h
system_stm32f10x.c
system_stm32f10x.h
}
LED{
led.c
led.h
}
src{
mian.c
startup_stm32f10x_md.s
stm32f10x_conf.h
}
STM32F10x_StdPeriph_Driver{
inc{...}
src{...}
}
SYSTEM{
delay{}
sys{}
usart{}
}
再将stm32f103rb_flash.ld复制到项目的根目录下.

问题:
1. 如果库文件版本太低, 会出现stm32f10x_lib.h, 改为stm32f10x.h即可
2. 在sys.c文件中, 有加入睡眠指令, 可将其注释掉.



沙发
yangwenguan|  楼主 | 2015-12-4 22:31 | 只看该作者
3. 项目配置

右击test项目, 选中弹出菜单Build Configurations->manage...
在弹出对话框中, 点击New, 在Create New Configuration对话框的Name文本框,输入ARM,点击OK.
再点击Set Active, 新建了一个构建配置集合ARM.

右击test项目, 选中弹出菜单Properties, (主要的设置都在这里)
在Properties for test对话框中,
除了C/C++ Build列表项需要重新配置之外, 其他的列表项无需设置.

在C/C++ Build列表项中,
Build Variables 可知, 当前的构建集合为ARM

Discovery Options无需设置

Environment:
PATH需要修改一下,以免链接到gcc,而不是arm gcc, 此处使用了gcc-arm-none-eabi-4_9-2015q3,
将/opt/gcc-arm-none-eabi-4_9-2015q3/bin添加到首位.

Logging无需设置

Settings(主角出现了,大家给点掌声)
其中包含了5个标签栏:

Tool Settings标签栏
Cross Settings列表项
Prefix:arm-none-eabi-
Path:/opt/gcc-arm-none-eabi-4_9-2015q3/bin

Cross GCC Compiler(设置完毕后, 可在此处查看所有设置,但是不能在这里修改)
-Preprocessor 无需修改
-Symbols
    Defined symbols(-D)添加USE_STDPERIPH_DRIVER(防止assert param未定义的错误)
-Includes
    将项目中所有包含.h文件的目录都加入进来, 包括gcc-arm-none-eabi-4_9-2015q3/include
-Optimization
   Optimization Level:Optimize for size(-Os)  不然生成的bin文件会很大.
-Debugging
   Debug Level:None  
-Warmings 无需修改
-Miscellaneous
    Other flags: -mcpu=cortex-m3 -mthumb -mfloat-abi=soft -c -fmessage-length=0

Cross GCC Linker列表项(同上)
-General
   (选中)OK:Do not use standard start files(-nostartfiles)   
-Libraries
   Library search path(-L)加入/opt/gcc-arm-none-eabi-4_9-2015q3/arm-none-eabi/lib/thumb
-Miscellaneous
   Linker flags:-mcpu=cortex-m3 -mthumb -mfloat-abi=soft -T ${ProjDirPath}/stm32f103rb_flash.ld
-Shared Library Settings 无需修改

Cross GCC Assembler 无需修改


使用特权

评论回复
板凳
yangwenguan|  楼主 | 2015-12-4 22:40 | 只看该作者

Build Steps标签栏
-Post-build steps (由elf文件生成bin文件)
加入arm-none-eabi-objcopy -O binary "${BuildArtifactFileBaseName}.elf" "${BuildArtifactFileBaseName}.bin" && arm-none-eabi-size "${BuildArtifactFileName}"

Build Artifact标签栏
Artifact Type:Executable
Artifact name:${ProjName}
Artifact extension:elf

Binary Parser标签栏
OK:Elf Parser

Error Parsers标签栏(无需修改)

///////////////////////////////////////////////////////
Tool Chain Editor 列表项 (无需修改)


/////////////////////////////////////////////////////////////////////
源码文件还有一处需要修改, 在core_cm3.c文件中,
找到__STREXB__STREXH函数, 将
=r” 改为 “=&r

此时可右击test项目, 选中弹出菜单Build Project, 即可完成编译.

/////////////////////////////////////////////////////////////////////////
这个良心帖子应该能加精,  21小管家, 你说对不对?

使用特权

评论回复
地板
yangwenguan|  楼主 | 2015-12-4 22:48 | 只看该作者
实例源码已经上传到下载区, 记得将后缀.zip去掉, 文件名应为xxxx.7z

使用特权

评论回复
5
yangwenguan|  楼主 | 2015-12-7 19:05 | 只看该作者
这个帖子没人看吗?

使用特权

评论回复
6
mingrc| | 2015-12-7 21:27 | 只看该作者
mark        。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

68

主题

565

帖子

1

粉丝