在windows环境下用Sourcery CodeBench编译基于Word文档格式.docx

上传人:b****6 文档编号:19701027 上传时间:2023-01-08 格式:DOCX 页数:22 大小:1.38MB
下载 相关 举报
在windows环境下用Sourcery CodeBench编译基于Word文档格式.docx_第1页
第1页 / 共22页
在windows环境下用Sourcery CodeBench编译基于Word文档格式.docx_第2页
第2页 / 共22页
在windows环境下用Sourcery CodeBench编译基于Word文档格式.docx_第3页
第3页 / 共22页
在windows环境下用Sourcery CodeBench编译基于Word文档格式.docx_第4页
第4页 / 共22页
在windows环境下用Sourcery CodeBench编译基于Word文档格式.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

在windows环境下用Sourcery CodeBench编译基于Word文档格式.docx

《在windows环境下用Sourcery CodeBench编译基于Word文档格式.docx》由会员分享,可在线阅读,更多相关《在windows环境下用Sourcery CodeBench编译基于Word文档格式.docx(22页珍藏版)》请在冰豆网上搜索。

在windows环境下用Sourcery CodeBench编译基于Word文档格式.docx

Next->

开始安装。

2.安装SourceryCodeBenchLiteEditionforARMEABI

SourceryCodeBench是一款能够在ARM,Coldfire,MIPS,Power,X86,等平台上作嵌入式C/C++开发的完整的开发环境。

而其中的SourceryCodeBenchLite为你提供免费的,基于命令行接口的交叉编译器。

ccsv5自带有CGT编译器,而我们最终是要能够编译生成在am3359上裸跑的代码,所以我们需要ccsv5调用SourceryCodeBenchLite的交叉工具链替代掉原来的CGT编译器来编译u-boot。

下载SourceryCodeBenchLiteEditionforARMEABI:

EABI:

用于RTOS或者没有os的硬件设备。

这个配置不能用于构建内核或者应用程序。

uClinux:

用于运行不带MMU的CPU上的linux系统。

可以构建uClinux内核和应用程序。

GNU/Linux:

这个用于运行带有MMU的CPU上的linux系统。

可以构建linux内核和应用程序。

SymbianOS:

用于编译Symbian应用程序。

运行arm-2012.03-56-arm-none-eabi

然后Next->

Install。

3.构建u-boot工程并编译

为了移植u-boot我们需要做一些编辑工作,这时我们需要一个IDE。

由于我们只需要一个框架平台,用它调用SourceryCodeBench这样的交叉工具链和MinGW/MSYS下的一些linux命令来完成编译,这样Eclipse无疑是适合的选择。

Eclipse,一个跨平台的集成开发环境,它本身只是一个框架平台,但是众多插件的支持,使得人们能够以Eclipse为框架开发自己的IDE。

而ccsv5是基于Eclipse框架的,并且使用ccsv5还可以方便烧写flash和Debug,因此我们选择ccsv5。

关于ccsv5的下载与安装,受篇幅所限,笔者不再详述,大家可以到ti官网上自行下载安装。

3.1安装嵌入式调试插件ZylinCDT

ZylinCDT是一个免费的Eclipse的交叉调试插件,并且能够自动生成makefile。

下载ZylinCDT:

http:

//repo.or.cz/w/zylincdt.git

选择zylincdt:

4.16,点击zip下载。

解压Zylincdt:

打开CCSV5,Help->

InstallNewSoftware...

Add->

Archive->

Zylincdt\com.zylin.cdt.updatesite\content.jar

Name:

zylincdt

在ZylincdtEmbeddedCDT选项上打钩,Next>

Next>

->

Iacceptthetermsofthelicenseagreement

Finish

3.2导入u-boot工程

由于只是测试所用,笔者下载的是征对beaglebone这块板子配置好的u-boot源码。

File->

New->

Project

将路径指向到已存在的u-boot中:

3.3为u-boot工程设置一些选项

我们要设置好使用何种交叉工具链,指定好交叉工具链的路径,指定好要使用的MinGW/MSYS中linux命令的路径,然后做好编译u-boot时需要的编译选项。

在工程u-boot处右击,选择Properties:

C/C++Bulid->

Environment->

Add

CROSS_COMPILE

Value:

arm-none-linux-gnueabi-

PATH

D:

\MinGW\bin;

D:

\MinGW\msys\1.0\bin;

\Sourcery_CodeBench_Lite_for_ARM_EABI\bin

在C/C++Build下,选择BuilderSettings,将Usedefaultbuildcommand前面的钩取消,在下面Buildcommand中添加:

makeCROSS_COMPILE=$(CROSS_COMPILE),选择Behavior,在Build(Incrementalbuild)和clean前打钩,将Build(Incrementalbuild)后的all去掉:

在C/C++Build->

Settings中钩上GNUElfParser,然后在弹出的addr2linecommand和c++filtcommand中指明路径:

\Sourcery_CodeBench_Lite_for_ARM_EABI\bin\arm-none-linux-gnueabi-addr2line.exe

\Sourcery_CodeBench_Lite_for_ARM_EABI\bin\arm-none-linux-gnueabi-c++filt.exe

在Project下选择MakeTarget->

Creat:

在Targetname中添加distclean点击OK,再用同样的办法添加am335x_evm_config。

制作这两个选项是为makedistclean和makeam335x_evm_config做准备的。

由于做移植工作需要反复编译u-boot,在编译u-boot的过程中会产生一些中间文件和链接文件,当修改完u-boot再次编译时,它可能会调用原来的中间文件和链接文件,这样编译就会出错,这时就需要用到makedistclean。

makedistclean是用来清除之前编译u-boot产生的多余的中间文件和链接文件,能保证再次编译不受上一次干扰。

makeam335x_evm_config则是用来配置板子的相应信息。

3.4修改Makefile和mkconfig

由于Makefile和mkcong中有些命令在现有的环境中还无法使用,比如ln-s链接命令。

Windows下的快捷方式虽然与linux下的链接文件比较相似,但实现机制并不相同,如果通过修改makefile来取代链接文件直接指向原文件的位置,那工作量可想而知。

此时,我们需要一个工具junction。

junction是由Sysinternals出品的一个免费的命令行工具,它可以创建和删除符号链接。

这样我们修改makefile的工作量将大大减少。

下载Junction:

将junction.exe拷贝到D:

\MinGW\msys\1.0\bin下,然后双击它。

打开u-boot根目录下的Makefile,在文件末尾找到clobberclean处,修改如下:

clobber:

clean

@find$(OBJTREE)-typef\(-name'

*.depend'

\

-o-name'

*.srec'

-o-name'

*.bin'

-o-nameu-boot.img\)\

-print0\

|xargs-0rm-f

@rm-f$(OBJS)$(obj)*.bak$(obj)ctags$(obj)etags$(obj)TAGS\

$(obj)cscope.*$(obj)*.*~

@rm-f$(obj)u-boot$(obj)u-boot.map$(obj)u-boot.hex$(ALL-y)

@rm-f$(obj)u-boot.kwb

@rm-f$(obj)u-boot.imx

@rm-f$(obj)u-boot.ubl

@rm-f$(obj)arch/powerpc/cpu/mpc824x/bedbug_603e.c

#@rm-fr$(obj)include/asm/proc$(obj)include/asm/arch$(obj)include/asm

@rm-fr$(obj)include/generated

#new:

adddeletejunctiontothisplace

echo"

adddeletejunctiontothisplace"

@[!

-d$(obj)include/asm]||junction-d$(obj)include/asm

-d$(obj)nand_spl]||find$(obj)nand_spl-name"

*"

-typel-print|xargsrm-f

-d$(obj)onenand_ipl]||find$(obj)onenand_ipl-name"

-d$(obj)mmc_spl]||find$(obj)mmc_spl-name"

注:

红色字体为要添加的部分。

打开u-boot根目录下的mkconfig,找到注释#Createlinktoarchitecturespecificheaders处,修改如下(左边为修改前,右边为修改后):

#Createlinktoarchitecturespecificheaders

#

if["

$SRCTREE"

!

="

$OBJTREE"

];

then

mkdir-p${OBJTREE}/include

mkdir-p${OBJTREE}/include2

cd${OBJTREE}/include2

rm-fasm

ln-s${SRCTREE}/arch/${arch}/include/asmasm

LNPREFIX=${SRCTREE}/arch/${arch}/include/asm/

cd../include

mkdir-pasm

else

cd./include

ln-s../arch/${arch}/include/asmasm

fi

rm-fasm/arch

if[-z"

${soc}"

ln-s${LNPREFIX}arch-${cpu}asm/arch

ln-s${LNPREFIX}arch-${soc}asm/arch

${arch}"

="

arm"

rm-fasm/proc

ln-s${LNPREFIX}proc-armvasm/proc

#rm-fasm

#ln-s../arch/${arch}/include/asmasm

if[-dasm];

deletejunctioninclude/asm"

junction-dasm

fi

createjunctioninclude/asm"

junctionasm../arch/${arch}/include/asm

addrm-rtodeleteadirectory

rm-frasm/arch

rm-frasm/proc

3.5编译u-boot

因为编译u-boot时会默认调用D:

\MinGW\bin中的strip.exe,而我们需要调用的是SourceryCodeBench中的arm-none-linux-gnueabi-strip.exe。

那么我们只需要做简单地替换就行了,做法:

将D:

\Sourcery_CodeBench_Lite_for_ARM_EABI\bin中的arm-none-linux-gnueabi-strip.exe拷贝到D:

\MinGW\bin中改名为strip.exe替换掉原来D:

\MinGW\bin下的strip.exe。

在Project下的MakeTarget->

Build中,选择distclean,点击build:

如果编译提示没有/tmp目录,那么可以用D:

\MinGW\msys\1.0下的msys.bat新建一个:

双击msys.bat,键入:

Mkdir/tmp

Chmoda+rwx/tmp

Build中选择am335x_evm_config,点击build:

在Project下点击BuildProject,开始编译u-boot:

至此u-boot就编译好了。

由于笔者手上的板子没有NANDflash,它是从SD卡启动的,所以要用一个工具把u-boot.bin做成u-boot.img文件。

笔者从网上下载了适用于windows下的mkimage工具,然后把MLO和做好的u-boot.img拷入分好区的SD卡中,结果顺利运行。

笔者做这件事情,一是大家不需要装虚拟机或者linux的物理机,二是对习惯在windows环境下操作的朋友提供一种工作模式,二是为刚从windows转移到linux中工作的人提供方便。

笔者是在windows7系统32位环境下编译的u-boot,编译一次大概30分钟。

由于笔者才疏学浅,文中不足之处还请多多包涵。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1