资源描述:
《移植gnu工具链到新的体系架构》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、移植GNU工具链到新的体系架构字体:小中大
2、打印发表于:2008-4-0820:31 作者:beforewind 来源:EDA中国门户网站链接地址:http://osdev.gro.clinux.org/toolchain/toolchain_guide_for_tot.html2007-12-11从何开始有个新的CPU,或者新的操作系统,该怎么样搞个toolchain出来?如何构建一个selfhost的操作系统?或许不为真的要去构造,仅仅满足一下好奇心而已.当然打算从gnutoolchain入手,又不是为了写编译器.(来自互联网的内容已尽力标明出处)too
3、lchain的结构GCC的toolchain包括几个部分?根据印象,应是有gcc,cpp,cc1,gas,ld,gdb,ar,nm,strip,objdump....emulator?忘了,还有重要的libc...汗..看一个以上几部分都已经都存在的toolchain的构建,我们需要下面的几个部分才能构建一个完整的toolchain:binutils:gas,ld,ar,nm,strip,objdump....gun-gcc: gcc,cpp,cc1,libc: aclibforapplicationsgdb: fordebugging...模拟器
4、...以上各个部分,缺了就不好受...Binutils估计as是我们最想搞到的部分....没有as,ld,nm,ar...即使移植了Gcc也是不能工作...binutils包含如下各个部分:主要部分:·ld-theGNUlinker.·as-theGNUassembler.其他(很有用哦):·addr2line-Convertsaddressesintofilenamesandlinenumbers.·ar-Autilityforcreating,modifyingandextractingfromarchives.·c++filt-Filtertodemang
5、leencodedC++symbols.·gprof-Displaysprofilinginformation.·nlmconv-ConvertsobjectcodeintoanNLM.·nm-Listssymbolsfromobjectfiles.·objcopy-Copysandtranslatesobjectfiles.·objdump-Displaysinformationfromobjectfiles.·ranlib-Generatesanindextothecontentsofanarchive.·readelf-Displaysinformatio
6、nfromanyELFformatobjectfile.·size-Liststhesectionsizesofanobjectorarchivefile.·strings-Listsprintablestringsfromfiles.·strip-Discardssymbols.·windres-AcompilerforWindowsresourcefiles.预备知识:1.阅读如binutils自己的文档 gas/doc/internals.texi bfd/doc/bfdint.texi PreliminaryNotesonPortingBFD2.读
7、源代码....??3.找个cpu的实例来分析,比如这个AddnewtargettoBinutils 还有PS3的cellCPU的proting:NewporttoCellSPU 也比较全面.移植的基本步骤,建议仔细阅读CGEN,theCputoolsGENerator的各种文档:移植完整的Toolchain到一个CPU(target),需要按顺序(不一定,但是这么做是有道理的)移植如下模块:·DejaGNU DejaGNU是一个测试工具DejaGNU的HomePage·BFD BinaryFileDriver PreliminaryNo
8、tesonPortingBFD·CGEN 为GNUtoolChain提供CPU描述,产生基础文件pcodes,GAS,andsimulator,refertoM32Rport·Opcodes opcodes目录完全由CGEN产生CGENPorting·GAS CGEN只产生部分代码,主要是测试CGENPorting·Binutilsld 搞完ld,binutils就全了........·newlib·libgloss·simulator CGENPorting·GCC·GDB可以看到CGEN的重要作用,困难的Op
9、codes部分他已经帮着