打造windows下的嵌入式开发工具(8):让codeblocks调用bfin交叉编译

本文介绍如何在CodeBlocks IDE中配置针对Blackfin系列DSP的bfin-uclinux-gcc编译器,包括修改源代码以支持特定的编译器和设置编译器路径。

 

快乐虾

http://blog.youkuaiyun.com/lights_joy/

lights@hb165.com

 

 

本文适用于

ADI Blackfin系列DSP

优视科技BV561EVB开发板

gcc- 4.3.1

binutils-2.18

codeblocks-8.02

Skyeye- 1.2.5

bfin-uclinux-2008r1-rc8

Cygwin gcc 3.4.4

Visual studio 2005

Visual DSP++ 5.0

 

欢迎转载,但请保留作者信息

 

Codeblocks支持许多不同的编译器,这种支持是由compilerGCC这个plugin来完成的。我们所需要做的就是在这个plugin中添加对bfin-uclinux-gcc的支持。在此之前,首先将已经生成的交叉编译程序都放在codeblocks/arch/bfin/compiler/uclinux/bin目录下。

compilergcc这个plugin中,整个框架由CompilerGCC这个类来完成,然后为每个不同的编译器定义了不同的类,我们找一个最相近的类进行修改,比如CompilerGNUARM这个类,直接把它复制为CompilerBfinUclinux

class CompilerBfinUclinux : public Compiler

{

    public:

        CompilerBfinUclinux();

        virtual ~CompilerBfinUclinux();

        virtual void Reset();

        virtual void LoadDefaultRegExArray();

        virtual AutoDetectResult AutoDetectInstallationDir();

    protected:

        virtual Compiler* CreateCopy();

    private:

};

够简单了吧!

接下来在构造函数里面要指定这个编译器的名称:

CompilerBfinUclinux::CompilerBfinUclinux()

    : Compiler(_("GNU BFIN UCLINUX GCC Compiler"),_T("bfin-uclinux-gcc"))

{

    Reset();

}

接下来指定编译程序的名称:

void CompilerBfinUclinux::Reset()

{

    if (platform::windows)

    {

        m_Programs.C = _T("xgcc.exe");

        m_Programs.CPP = _T("xgcc.exe");

        m_Programs.LD = _T("ld.exe");

        m_Programs.DBG = _T("gdb.exe");

        m_Programs.LIB = _T("ar.exe");

        m_Programs.WINDRES = _T("");

        m_Programs.MAKE = _T("make.exe");

    }

………………………………………..

} // end of Reset

下一步指定编译器所在的路径:

AutoDetectResult CompilerBfinUclinux::AutoDetectInstallationDir()

{

    wxString sep = wxFileName::GetPathSeparator();

    if (platform::windows)

    {

        m_MasterPath = wxGetCWD() + "/arch/bfin/compiler/uclinux/";

    }

    else

        m_MasterPath = _T("/usr");

 

    AutoDetectResult ret = wxFileExists(m_MasterPath + bin/ m_Programs.C) ? adrDetected : adrGuessed;

    return ret;

} // end of AutoDetectInstallationDir

最后在CompilerGCC里面注册这个编译器:

void CompilerGCC::OnAttach()

{

…………………………………..

    CompilerFactory::RegisterCompiler(new CompilerBfinUclinux);

……………………………………

}

经过这样处理后,就可以在codeblocksIDE中对单个文件进行编译了,当然,仅仅是对单个文件进行编译,至于链接还得进一步处理。

 

 

 

参考资料

host-i686-pc-cygwin/libiberty/Makefile解析( 2008-8-19 )

host-i686-pc-cygwin/fixincludes/Makefile分析( 2008-8-19 )

host-i686-pc-cygwin/zlib/Makefile分析( 2008-8-19 )

host-i686-pc-cygwin/libcpp/Makefile分析( 2008-8-19 )

host-i686-pc-cygwin/libdecnumber/Makefile分析( 2008-8-19 )

bfin-xxx-gcccc1.exe的生成( 2008-8-22 )

bfin-xxx-gcccc1plus.exe的生成 2008-08-23

bfin-xxx-gccfortran目标的生( 2008-8-24 )

bfin-xxx-gccjava目标的生成( 2008-8-24 )

bfin-xxx-gccobjc目标的生成( 2008-8-26 )

bfin-xxx-gcccollect2目标的生成( 2008-8-26 )

打造windows下的嵌入式开发工具(1):目标( 2008-9-3 )

打造windows下的嵌入式开发工具(2)binutils-2.18( 2008-9-3 )

打造windows下的嵌入式开发工具(3)gmp-4.2.3( 2008-9-3 )

打造windows下的嵌入式开发工具(4)mpfr-2.3.1( 2008-9-4 )

打造windows下的嵌入式开发工具(5)gcc-4.3.1( 2008-9-4 )

打造windows下的嵌入式开发工具(6)wxWidgets-2.8.8( 2008-9-4 )

打造windows下的嵌入式开发工具(7)codeblocks-8.02( 2008-9-8 )

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌云阁主

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值