embeded/FPGA - ALTERA2018. 1. 27. 12:48

먼가 반갑도고 징글징글 한 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가 깜박깜박 한다.


이제 남은건.. 바이너리 통합하기?

'embeded > FPGA - ALTERA' 카테고리의 다른 글

elf2flash와 nios2-elf-objcopy 사용하기  (0) 2018.01.29
Nios II 이미지 합치기 (조사)  (0) 2018.01.27
Nios II 명령어 관련 조사  (0) 2018.01.26
nios2 /e /f 별 설정  (0) 2018.01.25
my first Nios II with DE0-nano  (0) 2018.01.25
Posted by 구차니