专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
DSP
打造windows下的嵌入式开发工具(8):让codeblocks调用bfin交叉编译
2019-07-13 14:47
发布
生成海报
站内文章
/
DSP
9624
0
1105
快乐虾
http://blog.csdn.net/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);
……………………………………
}
经过这样处理后,就可以在
codeblocks
的
IDE
中对单个文件进行编译了,当然,仅仅是对单个文件进行编译,至于链接还得进一步处理。
参考资料
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-gcc
中
cc1.exe
的生成
(2008-8-22)
bfin-xxx-gcc
中
cc1plus.exe
的生成
(
2008-08-23
)
bfin-xxx-gcc
中
fortran
目标的生
成
(2008-8-24)
bfin-xxx-gcc
中
java
目标的生成
(2008-8-24)
bfin-xxx-gcc
中
objc
目标的生成
(2008-8-26)
bfin-xxx-gcc
中
collect2
目标的生成
(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)
Ta的文章
更多
>>
为什么要控制控制 pcb 阻抗
0 个评论
打造windows下的嵌入式开发工具(8):让codeblocks调用bfin交叉编译
0 个评论
嵌入式学成记
0 个评论
热门文章
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮