현재 버전

ARM QEMU gcc Embedded

ARM을 gcc로 컴파일 할 때 문제가 발생합니다.


안녕하세요 임베디드 시스템을 공부중인 학생입니다.

제가 임베디드os개발 프로젝트라는 책을 읽으면서 embedded software를 공부중이었습니다.

제가 예시대로 리눅스에서 arm-none-eabi-as 와 arm-none-eabi-ld명령어를 통해서 navilos.axf라는 바이너리 파일을 만들었습니다. 그 이후 실행하기 위해서  QEMU라는 에뮬레이터에 이 파일을 올려야 하고 gdb를 통해서 메모리 값을 확인해야합니다. 그래서 qemu-system-arm -M realview-pb-a8 -kernel navilos.axf -S -gdb tcp:1234,ipv4라는 qemu에 올리는 명령어를 실행시켰는데 이런 에러화면이 나옵니다.




그리고 이후에 디버깅을 하려고 gdb명령어를 사용해도 다음과 같은 에러가 발생합니다.


네트웍 포트가 열리지 않아서 일까요? 아니면 패키지를 받지 않은 것이 있어서 일까요? 아니면 리눅스의 버전이 잘못된 것 일까요? 펌웨어를 올리고 디버깅하는 과정이 엄청 중요한데 처음부터 막혀서 어렵습니다. 도와주시면 감사하겠습니다.



수정 이력

2020-06-29 10:33:54 에 아래 내용에서 변경 됨 #1

안녕하세요 임베디드 시스템을 공부중인 학생입니다.

제가 임베디드os개발 프로젝트라는 책을 읽으면서 embedded software를 공부중이었습니다.

제가 예시대로 리눅스에서 arm-none-eabi-as 와 arm-none-eabi-ld명령어를 통해서 navilos.axf라는 바이너리 파일을 만들었습니다. 그 이후 실행하기 위해서  QEMU라는 에뮬레이터에 이 파일을 올려야 하고 gdb를 통해서 메모리 값을 확인해야합니다. 그래서 qemu-system-arm -M realview-pb-a8 -kernel navilos.axf -S -gdb tcp:1234,ipv4라는 qemu에 올리는 명령어를 실행시켰는데 이런 에러화면이 나옵니다.



그리고 이후에 디버깅을 위해서 gdb명령어를 실행시켜도 오류가 발생합니다.



시스템을 개발하기 위해서 에뮬레이터에 올리고 디버깅하는 과정은 필수적입니다. 그래서 꼭 해결해야 다음 진도로 나갈 수 있을 텐데 어떻게 해야할지 모르겠습니다. 어떤 특정 패키지를 다운 받지 않아서 이러는 것인지 아니면 리눅스 버전이 잘못된 것인지 모르겠습니다. 전문가님들의 조언 부탁드립니다.