먼가 반갑도고 징글징글 한 eclipse mars.2?
아무튼 얘가 Nios II 용 프로그램을 빌드해주실 분이다.
File - New - Nios II Application and BSP from Template를 하라고 하는데
sopcinfo 파일을 지정하라고 한다.
아놔.. 망할 공백 -_ㅠ 일단 다른데로 저장해서 진행 ㄱㄱ
일단 파일을 지정하고 나면 약간의 시간 후에 cpu 이름이 뜬다.
프로젝트 이름은 대충 일단 쳐넣어 보고
기본 소스는 있으니까(머 printf("Hello from Nios II!\n"); 뿐이지만)
Run 눌러서 빌드+실행!
실행시에는 Nios II Hardware로 하라고 하는데
안되잖아 -ㅁ-?
일단 원인 검색중..
nios2-elf-g++ -T'../hello_world_0_bsp//linker.x' -msys-crt0='../hello_world_0_bsp//obj/HAL/src/crt0.o' -msys-lib=hal_bsp -L../hello_world_0_bsp/ -Wl,-Map=hello_world_0.map -O0 -g -Wall -mno-hw-div -mno-hw-mul -mno-hw-mulx -mgpopt=global -o hello_world_0.elf obj/default/hello_world.o -lm -msys-lib=m c:/intelfpga_lite/17.1/nios2eds/bin/gnu/h-x86_64-mingw32/bin/../lib/gcc/nios2-elf/5.3.0/../../../../../H-x86_64-mingw32/nios2-elf/bin/ld.exe: address 0x18dc0 of hello_world_0.elf section `.bss' is not within region `onchip_memory2_0' c:/intelfpga_lite/17.1/nios2eds/bin/gnu/h-x86_64-mingw32/bin/../lib/gcc/nios2-elf/5.3.0/../../../../../H-x86_64-mingw32/nios2-elf/bin/ld.exe: address 0x18dc0 of hello_world_0.elf section `.bss' is not within region `onchip_memory2_0' collect2.exe: error: ld returned 1 exit status make: *** [hello_world_0.elf] Error 1 |
메모리가 부족해요 부터 이상한 소리들이 많은데 결국 도움 받은 글은 이것 하나네
프로젝트 중 _bsp로 끝나는 것에서 우클릭 Proeprties
Nios II BSP Properties 에서, 조금 기다리면 비활성화 된 내용들이 풀리는데
Reduced device drivers는 필수는 아니고
Optimization level로 필수는 아니지만
Small C library 는 필수로 해주어야 한다고 한다.
[링크 : https://www.alteraforum.com/forum/showthread.php?t=52418]
일단 소스를 변경하고 했는데 PIO_0_BASE로 된건 조금 헤매게 되네..
system.h 에 PIO로 검색해서 나오는 건데, pdf 파일의 버전과 달라서 그런지 생성되는 명칭이 다르다.
/* * "Hello World" example. * * This example prints 'Hello from Nios II' to the STDOUT stream. It runs on * the Nios II 'standard', 'full_featured', 'fast', and 'low_cost' example * designs. It runs with or without the MicroC/OS-II RTOS and requires a STDOUT * device in your system's hardware. * The memory footprint of this hosted application is ~69 kbytes by default * using the standard reference design. * * For a reduced footprint version of this template, and an explanation of how * to reduce the memory footprint for a given application, see the * "small_hello_world" template. * */
#include <stdio.h> #include "system.h" #include "altera_avalon_pio_regs.h"
int main() { printf("Hello from Nios II!\n"); int count = 0; int delay; while (1) { IOWR_ALTERA_AVALON_PIO_DATA(PIO_0_BASE, count & 0x01); delay = 0; while (delay < 1000000) { delay++; } count++; } return 0; } |
Run Configurations 에
Nios II Hardware 에서 Target Connection 오른쪽에 Refresh Connections가 창이 작아서 안보였는데
아무튼 이걸 눌러줘야 프로세서가 뜨고 프로그램이 정상적으로 작동하게 된다.
망할 -_- 자동 탐지 되는줄 알았는데 ㅠㅠ
아무튼 먼가 열심히 빌드하고 먼가 열심히 올리더니
printf()로 출력한거 나오고 LED가 깜박깜박 한다.
이제 남은건.. 바이너리 통합하기?