Dear Friends I'm beginner in ARM Projects development, and I wanted to start with run a simple "Hello world" on my OK6410 Board. My board processor is ARM 1176jzf-s and have linux os. I used Eclipse CDT and installed Sourcery_CodeBench_Lite_for_ARM_EABI on windows 7 platform and add GNU ARM Eclipse Plug-in. my program: #include "stdio.h" int main(void) { printf("Hello world !\n"); return 0; } When I wants to build my hello world project I get these errors: cs-make all 'Building target: helloarm.elf' 'Invoking: ARM Sourcery Windows GCC C++ Linker' arm-none-eabi-g++ -Wl,-Map,helloarm.map -mcpu=arm1176jzf-s -mthumb -g3 -o "helloarm.elf" ./src/helloarm.o c:/program files/codesourcery/sourcery_codebench_lite_for_arm_eabi/bin/../lib/gcc/a rm-none-eabi/4.6.1/../../../../arm-none-eabi/bin/ld.exe: warning: cannot find entry symbol _start; defaulting to 00008010 c:/program files/codesourcery/sourcery_codebench_lite_for_arm_eabi/bin/../lib/gcc/a rm-none-eabi/4.6.1/../../../../arm-none-eabi/lib/thumb\libc.a(lib_a-abor t.o): In function `abort': abort.c:(.text+0xa): undefined reference to `_exit' c:/program files/codesourcery/sourcery_codebench_lite_for_arm_eabi/bin/../lib/gcc/a rm-none-eabi/4.6.1/../../../../arm-none-eabi/lib/thumb\libc.a(lib_a-fsta tr.o): In function `_fstat_r': fstatr.c:(.text+0xe): undefined reference to `_fstat' c:/program files/codesourcery/sourcery_codebench_lite_for_arm_eabi/bin/../lib/gcc/a rm-none-eabi/4.6.1/../../../../arm-none-eabi/lib/thumb\libc.a(lib_a-open r.o): In function `_open_r': openr.c:(.text+0x10): undefined reference to `_open' c:/program files/codesourcery/sourcery_codebench_lite_for_arm_eabi/bin/../lib/gcc/a rm-none-eabi/4.6.1/../../../../arm-none-eabi/lib/thumb\libc.a(lib_a-sbrk r.o): In function `_sbrk_r': sbrkr.c:(.text+0xc): undefined reference to `_sbrk' c:/program files/codesourcery/sourcery_codebench_lite_for_arm_eabi/bin/../lib/gcc/a rm-none-eabi/4.6.1/../../../../arm-none-eabi/lib/thumb\libc.a(lib_a-sign alr.o): In function `_kill_r': signalr.c:(.text+0xe): undefined reference to `_kill' c:/program files/codesourcery/sourcery_codebench_lite_for_arm_eabi/bin/../lib/gcc/a rm-none-eabi/4.6.1/../../../../arm-none-eabi/lib/thumb\libc.a(lib_a-sign alr.o): In function `_getpid_r': signalr.c:(.text+0x2e): undefined reference to `_getpid' c:/program files/codesourcery/sourcery_codebench_lite_for_arm_eabi/bin/../lib/gcc/a rm-none-eabi/4.6.1/../../../../arm-none-eabi/lib/thumb\libc.a(lib_a-writ er.o): In function `_write_r': writer.c:(.text+0x10): undefined reference to `_write' c:/program files/codesourcery/sourcery_codebench_lite_for_arm_eabi/bin/../lib/gcc/a rm-none-eabi/4.6.1/../../../../arm-none-eabi/lib/thumb\libc.a(lib_a-clos er.o): In function `_close_r': closer.c:(.text+0xc): undefined reference to `_close' c:/program files/codesourcery/sourcery_codebench_lite_for_arm_eabi/bin/../lib/gcc/a rm-none-eabi/4.6.1/../../../../arm-none-eabi/lib/thumb\libc.a(lib_a-isat tyr.o): In function `_isatty_r': isattyr.c:(.text+0xc): undefined reference to `_isatty' c:/program files/codesourcery/sourcery_codebench_lite_for_arm_eabi/bin/../lib/gcc/a rm-none-eabi/4.6.1/../../../../arm-none-eabi/lib/thumb\libc.a(lib_a-lsee kr.o): In function `_lseek_r': lseekr.c:(.text+0x10): undefined reference to `_lseek' c:/program files/codesourcery/sourcery_codebench_lite_for_arm_eabi/bin/../lib/gcc/a rm-none-eabi/4.6.1/../../../../arm-none-eabi/lib/thumb\libc.a(lib_a-read r.o): In function `_read_r': readr.c:(.text+0x10): undefined reference to `_read' collect2: ld returned 1 exit status cs-make: *** [helloarm.elf] Error 1 **** Build Finished **** Could you please help me find out the problem. best regards
All these functions are so called "newlib stubs". In your C library you have only the hardware independent part of the C library functions like printf etc. So you have to implement these functions for your concrete µC. Also see: http://www.openhardware.net/Embedded_ARM/NewLib_Stubs/ Best regards Marius
Thanks for feedback, based on your advices and link, I find out that I installed “arm-2011.09-69-arm-none-eabi.exe” and this version is for bare-metal devices and I think defining "newlib stubs" is nessery for this kind of devices but my board has linux os then I installed “arm-2011.09-70-arm-none-linux-gnueabi.exe “ and the problem solved.
Please log in before posting. Registration is free and takes only a minute.
Existing account
Do you have a Google/GoogleMail account? No registration required!
Log in with Google account
Log in with Google account
No account? Register here.