久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

eclipse配置Freescale FRDM-KL25Z開發(fā)板環(huán)境

作者:未知   來源:互聯(lián)網(wǎng)   點(diǎn)擊數(shù):  更新時間:2014年08月16日   【字體:

Kineties-L32位的微處理器家族,基于ARM Cortex M0+。我手上有一個FRDM-KL25Z的開發(fā)板,官方有一個基于eclipseIDE——CodeWarrior,可以很方便地進(jìn)行編譯、下載、調(diào)試。但是不足的是免費(fèi)版本的CodeWarrior不能很方便地使用C++,如圖,當(dāng)我選擇C++時就不能選擇Device Initialization或者Processor Expert了。


不過好在雖然不會自動生成初始化文件,但是鏈接文件以及起始文件是可以生成的。
我們使用eclipse來配置一個純凈的KL25Z的開發(fā)環(huán)境:
 
1、  安裝交叉編譯工具:
a)         首先安裝交叉編譯工具,推薦使用Codesourcery
http://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebench/editions/lite-edition/
b)         選擇ARM processors,點(diǎn)擊Download the EABI Release,在隨后的頁面中注冊賬戶(有賬戶的話直接登錄),下載鏈接會發(fā)送到你注冊的郵箱中。
c)         然后下載,安裝。
d)         安裝完畢后就能在命令行下編譯ARM程序了。
 
2、  安裝eclipse:
a)         訪問http://www.eclipse.org/downloads/
b)         下載Eclipse IDE for C/C++Developers
c)         解壓即可使用。(前提是已經(jīng)安裝JDK
 
3、  安裝GNU ARM Eclipse Plug-in
這是一個eclipse的插件,裝上這個插件之后,eclipse就能夠編譯ARM程序了。
a)         eclipse中點(diǎn)擊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)


d)         點(diǎn)擊Next->Finish,工程新建完成。如圖所示


5、  加入程序代碼
a)         首先加入在CodeWarrior中新建C++工程時生成的代碼,包括三個目錄:Project_HeadersProject_SettingSources


b)         加入CodeWarriorC工程生成的CPU初始化代碼,目錄為Generated_Code,將CodeWarrior中工程下的Sources目錄下的Events.cEvents.h復(fù)制到eclipse工程下的Sources目錄下。將ProcessorExpert.c中的內(nèi)容復(fù)制到main.cpp中。
6、  配置工程
因?yàn)?span xml:lang="EN-US">CodeWarrior也是使用eclipse來配置工程的,所以可以參照CodeWarrior來配置工程。
a)         在工程文件夾上單擊右鍵,選擇Properties。在彈出的對話框中選擇C/C++ Build->Setting
b)         Target Processor
Processor: cortex-m0
Endiannes: Little Endian (-mlittle-endian)
Float ABI: Library (-mfloat-abi=soft)

 
c)         Debugging
Debug level: Maximum (-g3)
           Debug format: dwarf-2
           Other debugging flags: -gstrict-dwarf
 
d)         Additional Tools
 
e)         ARM Sourcery Windows GCC Assembler
Command line pattern:
${COMMAND} ${INPUTS} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT}
 
f)          ARM Sourcery Windows GCC C Compiler
因?yàn)?span xml:lang="EN-US">eclipse會根據(jù)源文件的后綴名來判斷使用gcc還是g++,為了統(tǒng)一使用g++來編譯程序,將Command修改為arm-none-eabi-g++
Command line pattern:
${COMMAND} ${INPUTS} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT}
 
g)         Preprocessor
Do not search system directories (-nostdinc)打鉤

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:\Freescale\CW MCU v10.3\MCU\ARM_GCC_Support\ewl\EWL_C\include"
"D:\Freescale\CW MCU v10.3\MCU\ARM_GCC_Support\ewl\EWL_C++\include"
"D:\Freescale\CW MCU v10.3\MCU\ARM_GCC_Support\ewl\EWL_Runtime\include"
其中后面三個在CodeWarrior的安裝目錄下。
  
i)           Optimization
Function sections (-ffunction-sections)Data sections (-fdata-sections)前打鉤
   
j)           Miscellaneous
Other flags寫入:-c -fmessage-length=0 -Iinclude -include lib_ewl_c++.prefix
  
k)         ARM Sourcery Windows GCC C++ Compiler
和前面的ARM Sourcery Windows GCC C Compiler配置相同。
   
l)           ARM Sourcery Windows GCC C++ Linker
Command line pattern:
${COMMAND} ${INPUTS} ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT}
  
m)       ARM Sourcery Windows GCC C++ Linker
Script file (-T)中寫入工程中的鏈接文件
C:\Users\wangqi\workspace-cpp\cpp\Project_Settings\Linker_Files\MKL25Z128_flash.ld
   
n)         Libraries
Library search path中寫入庫文件的路徑:
"D:\Freescale\CW MCU v10.3\MCU\ARM_GCC_Support\ewl\lib\armv6-m"
   
o)         Miscellaneous
Linker flags (-Xlinker [option])中寫入:
--undefined=__pformatter_
--defsym=__pformatter=__pformatter_
--start-group
-lc++ -lrt -lsupc++ -lc -lgcc -luart
--end-group
Other flags中寫入:
-n
  
7、  修改程序
此時如果運(yùn)行程序會發(fā)生這樣的錯誤:
   
問題出在Vector.c中,打開Vector.c文件尋找__thumb_startup(void)聲明。
extern void __thumb_startup( void );改成extern "C" void __thumb_startup( void );
  
8、  elf文件轉(zhuǎn)化成bin文件
點(diǎn)擊工程目錄右鍵,選擇Properties->C/C++ Build->Setting->Build Steps
Post-build steps一項(xiàng)的Command中輸入
arm-none-eabi-objcopy -O binary -S cpp.elf cpp.bin
  
關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: 一级毛片视频 | 精品一区二区三区91 | 午夜精品久久久 | 国产高清免费 | 亚洲免费视频一区 | 国产高清视频在线 | 九九精品视频在线 | 狠狠亚洲 | 国产在线精品一区 | 成人久久久| 精品自拍视频在线观看 | 91色综合| 午夜免费视频 | 黑人精品xxx一区一二区 | 国产一区在线看 | 黄色一级毛片免费看 | 久久久www成人免费无遮挡大片 | 日韩欧美久久精品 | 超碰婷婷 | 中文字幕视频在线观看免费 | 日本不卡免费新一二三区 | 欧美精品综合在线 | 欧美成人a∨高清免费观看 色999日韩 | 久久精品国产免费高清 | 午夜欧美日韩 | 久久久久久久久国产成人免费 | 美女爽到呻吟久久久久 | 可以看黄的视频 | 久久99精品久久久久久琪琪 | 国产精品一区在线 | 国产亚洲一区二区在线观看 | 成人免费网站在线 | 亚洲精品视频久久 | 天堂av中文在线 | 欧美视频精品 | 波多野结衣一区二区三区在线观看 | 中日韩av | 日韩高清国产一区在线 | 久久久久国产一级毛片高清网站 | 亚洲国产欧美日韩 | 中文字幕在线观看一区 |