NXP MCU 技术论坛
直播中

vvg

14年用户 7898经验值
擅长:嵌入式技术,控制/MCU
私信 关注
[资料]

在Eclipse中配置Freescale FRDM-KL25Z开发板环境

很多人也习惯使用Eclipse来作为开发环境,下面将会一步步的说明,如何在Eclipse中配置Freescale FRDM-KL25Z开发板环境。


                             Kineties-L是32位的微处理器家族,基于ARM Cortex M0+。我手上有一个FRDM-KL25Z的开发板,官方有一个基于eclipse的IDE——CodeWarrior,可以很方便地进行编译、下载、调试。但是不足的是免费版本的CodeWarrior不能很方便地使用C++,如图,当我选择C++时就不能选择Device Initialization或者Processor Expert了。
1.jpg 2.jpg
不过好在虽然不会自动生成初始化文件,但是链接文件以及起始文件是可以生成的。

我们使用eclipse来配置一个纯净的KL25Z的开发环境:

1、  安装交叉编译工具:
a)         首先安装交叉编译工具,推荐使用Codesourcery。
http://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebench/editions/lite-edition/
3.jpg
b)         选择ARM processors,点击Download the EABI Release,在随后的页面中注册账户(有账户的话直接登录),下载链接会发送到你注册的邮箱中。
c)         然后下载,安装。
d)         安装完毕后就能在命令行下编译ARM程序了。

2、  安装eclipse:
a)         访问http://www.eclipse.org/downloads/
b)         下载Eclipse IDE for C/C++Developers。
4.jpg
c)         解压即可使用。(前提是已经安装JDK)

3、  安装GNU ARM Eclipse Plug-in
这是一个eclipse的插件,装上这个插件之后,eclipse就能够编译ARM程序了。
a)         在eclipse中点击Help->Install New Software,输入
http://gnuarmeclipse.sourceforge.net/updates/
b)         安装成功后就能使用GNU ARM Eclipse插件了。

4、  新建C++工程
a)         输入工程名
b)         工程类型选择ARM Cross Target Application->Empty Project
c)         工具链选择ARM Windows GCC (Sourcery G++ Lite)
5.jpg

d)         点击Next->Finish,工程新建完成。如图所示

6.jpg

5、  加入程序代码

a)         首先加入在CodeWarrior中新建C++工程时生成的代码,包括三个目录:Project_Headers、Project_Setting、Sources
7.jpg

b)         加入CodeWarrior为C工程生成的CPU初始化代码,目录为Generated_Code,将CodeWarrior中工程下的Sources目录下的Events.c、Events.h复制到eclipse工程下的Sources目录下。将ProcessorExpert.c中的内容复制到main.cpp中。

8.jpg
6、  配置工程
因为CodeWarrior也是使用eclipse来配置工程的,所以可以参照CodeWarrior来配置工程。
a)         在工程文件夹上单击右键,选择Properties。在弹出的对话框中选择C/C++ Build->Setting。
9.jpg
b)         Target Processor:
Processor: cortex-m0
Endiannes: Little Endian (-mlittle-endian)
Float ABI: Library (-mfloat-abi=soft)
10.jpg

c)         Debugging
Debug level: Maximum (-g3)
           Debug format: dwarf-2
           Other debugging flags: -gstrict-dwarf
11.jpg

d)         Additional Tools
12.jpg 13.jpg

e)         ARM Sourcery Windows GCC Assembler
Command line pattern:
${COMMAND} ${INPUTS} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT}


f)          ARM Sourcery Windows GCC C Compiler
因为eclipse会根据源文件的后缀名来判断使用gcc还是g++,为了统一使用g++来编译程序,将Command修改为arm-none-eabi-g++。
Command line pattern:
${COMMAND} ${INPUTS} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT}
14.jpg
g)         Preprocessor
将Do not search system directories (-nostdinc)打钩
15.jpg

h)         Directories
加入Include路径:
"${workspace_loc:/${ProjName}/Project_Headers}"
"${workspace_loc:/${ProjName}/Sources}"
"${workspace_loc:/${ProjName}/Generated_Code}"
"${workspace_loc:/${ProjName}/Project_Settings/Startup_Code}"
"D:FreescaleCW MCU v10.3MCUARM_GCC_SupportewlEWL_Cinclude"
"D:FreescaleCW MCU v10.3MCUARM_GCC_SupportewlEWL_C++include"
"D:FreescaleCW MCU v10.3MCUARM_GCC_SupportewlEWL_Runtimeinclude"
其中后面三个在CodeWarrior的安装目录下。
   16.jpg
i)           Optimization
在Function sections (-ffunction-sections)和Data sections (-fdata-sections)前打钩
   17.jpg
j)           Miscellaneous
在Other flags写入:-c -fmessage-length=0 -Iinclude -include lib_ewl_c++.prefix
   18.jpg
k)         ARM Sourcery Windows GCC C++ Compiler
和前面的ARM Sourcery Windows GCC C Compiler配置相同。
   19.jpg
l)           ARM Sourcery Windows GCC C++ Linker
Command line pattern:
${COMMAND} ${INPUTS} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT}
   20.jpg
m)       ARM Sourcery Windows GCC C++ Linker
Script file (-T)中写入工程中的链接文件
C:Userswangqiworkspace-cppcppProject_SettingsLinker_FilesMKL25Z128_flash.ld
   21.jpg
n)         Libraries
Library search path中写入库文件的路径:
"D:FreescaleCW MCU v10.3MCUARM_GCC_Supportewllibarmv6-m"
   22.jpg
o)         Miscellaneous
Linker flags (-Xlinker [option])中写入:
--undefined=__pformatter_
--defsym=__pformatter=__pformatter_
--start-group
-lc++ -lrt -lsupc++ -lc -lgcc -luart
--end-group
Other flags中写入:
-n
   23.jpg
7、  修改程序
此时如果运行程序会发生这样的错误:
   24.jpg
问题出在Vector.c中,打开Vector.c文件寻找__thumb_startup(void)声明。
将extern void __thumb_startup( void );改成extern "C" void __thumb_startup( void );
   25.jpg
8、  将elf文件转化成bin文件
点击工程目录右键,选择Properties->C/C++ Build->Setting->Build Steps
在Post-build steps一项的Command中输入
arm-none-eabi-objcopy -O binary -S cpp.elf cpp.bin
   26.jpg
                       

回帖(4)

Mozie

2015-1-5 09:33:09
为什么不显示图片出来
举报

vvg

2015-1-5 09:50:42
引用: MouseesuoM 发表于 2015-1-5 09:33
为什么不显示图片出来

网速太慢了吧
举报

camp

2015-1-13 19:39:07
看不懂。。。。。。。。
举报

liwenz

2016-6-27 22:51:48
有点难度呀,看上去不错,希望自己能照做下来。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分