2013-04-09 718 views
0

任何机构都知道在Windows上使用Eclipse的GNU blackfin工具链的好教程?使用Eclipse进行GNU blackfin工具链所需的教程

我想开始在blackfin上开发裸机应用程序,我已经安装了工具链和eclipse C/C++ Juno,但我无法编译。目前我得到了make:***没有规则,使目标'全'错误,但还有很多其他的事情,我发现自己失去了。

非常感谢提前,

哈桑。

编辑:我读了一下关于“make”程序,并决定启动一个单文件测试项目来学习命令行工具链(没有eclipse环境)。这是我的main.c和相关的Makefile:

//main.c 
#include <stdio.h> 
int main(void) 
{ 
    volatile int x = 42; 
    printf("%i\n", x); 
    return 0; 
} 

#makeFile 

CPU = bf533-any 
CROSS_COMPILE = bfin-elf- 
CC = $(CROSS_COMPILE)gcc 
LD = $(CROSS_COMPILE)gcc 

CFLAGS = -c -Wall 

bfin_test: main.o 
    $(LD) main.o -mcpu=$(CPU) -o [email protected] 

main.o: main.c 
    $(CC) $(CFLAGS) main.c -mcpu=$(CPU) -o [email protected] 

这里是CMD控制台上运行make命令的结果:

D:\work\experiments\bfin_test_project>dir 
Volume in drive D is Data 
Volume Serial Number is 248D-2C8D 

Directory of D:\work\experiments\bfin_test_project 

14/04/2013 12:30 <DIR>   . 
14/04/2013 12:30 <DIR>   .. 
11/04/2013 13:30    102 main.c 
14/04/2013 12:29    257 makeFile 
14/04/2013 12:29    264 makeFile~ 
       3 File(s)   623 bytes 
       2 Dir(s) 634,582,650,880 bytes free 

D:\work\experiments\bfin_test_project>make 
bfin-elf-gcc -c -Wall main.c -mcpu=bf533-any -o main.o 
bfin-elf-gcc main.o -mcpu=bf533-any -o bfin_test 
c:/program files (x86)/analog devices/gnu toolchain/2012r2/elf/bin/../lib/gcc/bf 
in-elf/4.3.5/../../../../bfin-elf/lib\libc.a(lib_a-closer.o): In function `close 
_r': 
/usr/src/packages/BUILD/blackfin-toolchain-2012R2/gcc-4.3/newlib/libc/reent/clos 
er.c:53: warning: _close is not implemented and will always fail 
c:/program files (x86)/analog devices/gnu toolchain/2012r2/elf/bin/../lib/gcc/bf 
in-elf/4.3.5/../../../../bfin-elf/lib\libc.a(lib_a-fstatr.o): In function `fstat 
_r': 
/usr/src/packages/BUILD/blackfin-toolchain-2012R2/gcc-4.3/newlib/libc/reent/fsta 
tr.c:62: warning: _fstat is not implemented and will always fail 
c:/program files (x86)/analog devices/gnu toolchain/2012r2/elf/bin/../lib/gcc/bf 
in-elf/4.3.5/../../../../bfin-elf/lib\libc.a(lib_a-isattyr.o): In function `isat 
ty_r': 
/usr/src/packages/BUILD/blackfin-toolchain-2012R2/gcc-4.3/newlib/libc/reent/isat 
tyr.c:58: warning: _isatty is not implemented and will always fail 
c:/program files (x86)/analog devices/gnu toolchain/2012r2/elf/bin/../lib/gcc/bf 
in-elf/4.3.5/../../../../bfin-elf/lib\libc.a(lib_a-lseekr.o): In function `lseek 
_r': 
/usr/src/packages/BUILD/blackfin-toolchain-2012R2/gcc-4.3/newlib/libc/reent/lsee 
kr.c:58: warning: _lseek is not implemented and will always fail 
c:/program files (x86)/analog devices/gnu toolchain/2012r2/elf/bin/../lib/gcc/bf 
in-elf/4.3.5/../../../../bfin-elf/lib\libc.a(lib_a-readr.o): In function `read_r 
': 
/usr/src/packages/BUILD/blackfin-toolchain-2012R2/gcc-4.3/newlib/libc/reent/read 
r.c:58: warning: _read is not implemented and will always fail 
c:/program files (x86)/analog devices/gnu toolchain/2012r2/elf/bin/../lib/gcc/bf 
in-elf/4.3.5/../../../../bfin-elf/lib\libc.a(lib_a-writer.o): In function `write 
_r': 
/usr/src/packages/BUILD/blackfin-toolchain-2012R2/gcc-4.3/newlib/libc/reent/writ 
er.c:58: warning: _write is not implemented and will always fail 

这产生的.o和(据说)是精灵文件。这里是尝试使用工具链模拟器运行ELF文件的结果:

D:\work\experiments\bfin_test_project>bfin-elf-run bfin_test 
program stopped with signal 11 (Segmentation fault). 

根据http://docs.blackfin.uclinux.org/doku.php?id=toolchain:sim,这应该是运行在虚拟模式的模拟器。 (不知道我是否应该提供其他文件)

另外我不确定输出文件(bfin_test)实际上是一个elf文件还是可以使用模拟器(bfin-elf-run)运行。但是,如果是这样,我想知道为什么我得到这样一个看似简单的程序的分段错误。任何人都有想法?请注意,当将main改为仅包含“return 0;”时,我会得到相同的错误。

有人能告诉我我哪里出错了。再次

感谢,

+0

找到答案的段错误,我应该指定一个产生的输出文件(bfin_test)打算使用仿真工具(BFIN精灵运行)进行运行,因此生成文件中内部bfin_test的食谱应该看起来像这样:\t'$(LD)main.o -mcpu = $(CPU)-msim -o $ @' – has981 2013-04-14 17:13:21

+0

投票结束为工具推荐。 – 2015-06-22 12:31:23

回答