#include "alt_types.h" #include "altera_avalon_pio_regs.h" #include "altera_avalon_uart_regs.h" #include "sys/alt_irq.h" #include "system.h" #include <stdio.h> #include <string.h>
int main() { printf("Hello from Nios II!\n"); char* msg = "hello world"; FILE* fp; fp = fopen ("/dev/uart_0", "w"); if (fp!=NULL) { fprintf(fp, "%s",msg); fclose (fp); } return 0; }
Компилю, получаю ошибки:
**** Build of configuration Nios II for project NIOSUART ****
make all Info: Building ../NIOSUART_bsp make --no-print-directory -C ../NIOSUART_bsp [BSP build complete] Info: Linking NIOSUART.elf nios2-elf-g++ -T'../NIOSUART_bsp/linker.x' -msys-crt0='../NIOSUART_bsp/obj/HAL/src/crt0.o' -msys-lib=hal_bsp -L../NIOSUART_bsp -L/usr/include -Wl,-Map=NIOSUART.map -O0 -g -Wall -EL -mno-hw-div -mno-hw-mul -mno-hw-mulx -o NIOSUART.elf obj/hello_world.o -lm /media/MEDIA/Altera10Linux/nios2eds/bin/gnu/H-i686-pc-linux-gnu/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/bin/ld: region onchip_mem is full (NIOSUART.elf section .text) /media/MEDIA/Altera10Linux/nios2eds/bin/gnu/H-i686-pc-linux-gnu/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/bin/ld: region onchip_mem is full (NIOSUART.elf section .text) /media/MEDIA/Altera10Linux/nios2eds/bin/gnu/H-i686-pc-linux-gnu/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/bin/ld: section .rodata [00008020 -> 00008097] overlaps section .exceptions [00008020 -> 000081b3] /media/MEDIA/Altera10Linux/nios2eds/bin/gnu/H-i686-pc-linux-gnu/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/bin/ld: section .rwdata [00009ba4 -> 0000b6af] overlaps section .text [000081b4 -> 0000e7bf] /media/MEDIA/Altera10Linux/nios2eds/bin/gnu/H-i686-pc-linux-gnu/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/bin/ld: NIOSUART.elf: section .exceptions lma 0x8020 overlaps previous sections /media/MEDIA/Altera10Linux/nios2eds/bin/gnu/H-i686-pc-linux-gnu/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/bin/ld: NIOSUART.elf: section .text lma 0x81b4 overlaps previous sections collect2: ld returned 1 exit status make: *** [NIOSUART.elf] Ошибка 1
В чем может быть проблема? Я новичок, с ниосом только начинаю работать, объясните где я ошибся? Я так понимаю проблема с переполнением памяти на кристалле. Если я прав, как ее рассчитать под конкретный код?
Данная ошибка появляется при отключенной опции Small C Library. Когда данная опция включена, я получаю другую ошибку - undefined reference to 'fopen'. Думаю стоит так же уточнить что я работаю под линухом.
Как работать с макросами типа IOWR_ALTERA_AVALON_UART_TXDATA я разобрался, хочется теперь решить проблему с fopen
Сообщение отредактировал Evired - Oct 13 2010, 14:52
|