프로그래밍/Renode

[Renode] 가상머신 실행(Hello world 출력)

Beginner:) 2023. 8. 22.
320x100

이전에 Renode를 설치했었다.

 

2023.08.15 - [Learning/Renode] - [Renode] 설치

 

[Renode] 설치

1. 지원 아키텍처 ARMv7 and ARMv8 Cortex-A and Cortex-M x86 RISC-V SPARC POWER Xtensa 2. 설치 아래 링크에서 renode-*.linux-portable.tar.gz를 다운로드 https://github.com/renode/renode/releases/latest renode_portable 폴더를 만든 후

park-duck.tistory.com

 

Renode의 사용 목적이 대부분 가상 시물레이션일텐데, 

내가 가지고있는 STM32 NUCLEO-F411RE을 기준으로 가상머신을 돌려보자.

* 하드웨어에 대한 지식이 많이 부족하므로 ... 모르는건 모른다고 설명 + 나의 글은 참고만 ...

 

코드는 아래와 같다.

mach create
emulation CreateUartPtyTerminal "term" "/tmp/usart2"
machine LoadPlatformDescription @platforms/boards/stm32f4_discovery-kit.repl
sysbus LoadELF @../program/learnSTM/learnstm/build/temp.elf
showAnalyzer sysbus.usart2

mach create : 빈 가상 하드웨어를 만든다. c언어로 치면 new file

 

emulation CreateUartPtyTerminal "term" "/tmp/usart2" : 내 컴퓨터에 가상 usart를 만든다. 원리는 잘 모르지만 리눅스에서는 /dev/tty~ (Windows로 치면 COM)을 가상으로 만들어 해당 tty에 가상 터미널을 만들어 어떠한 데이터를 보내게 되면 마치 터미널에 연결된 board 등에서 데이터가 입력되듯이 사용할 수 있다. (Windows에서도 비슷한 기능이 있다) 이와 비슷한 개념으로 이해하는 중


machine LoadPlatformDescription @platforms/boards/stm32f4_discovery-kit.repl : mach create로 빈 가상하드웨어를 만들면 거기에 cpu, ram 등을 load하고 led pin 등을 정의해야하는데 그 부분에 해당한다. (확실치 않지만 include하는 파일들을 보면 그런 느낌이다) 내가 가지고 있는 보드 NUCLEO-F411RE와 같은 회로?인지는 모르겠다. stm32f4~kit인걸 보면 4시리즈가 비슷비슷해보이긴 한데, 어쨋건 하드웨어를 할 줄 알면 설정이 가능해보인다.

 

sysbus LoadELF @../program/learnSTM/learnstm/build/temp.elf : 내가 빌드한 elf파일을 load한다. .bin, .hex파일도 load가능하다. (@는 renode의 root 경로이다)

빌드 파일을 만드는 방법은 아래 링크를 참고한다.

2023.09.03 - [프로그래밍/STM32] - [STM32] cmake build(feat .bin, .elf, .hex 추출)

 

[STM32] cmake build(feat .bin, .elf, .hex 추출)

먼저 나의 작업환경을 tree -L 4로 출력한 Directory 구조이다. . ├── CMakeLists.txt ├── MAIN │ └── board │ └── F4 │ ├── Core │ ├── Drivers │ ├── stm32f411re │ └── ledtest2.ioc ├─

park-duck.tistory.com


showAnalyzer sysbus.usart2: usart2에 데이터를 디스플레이한다. usart2에 따른 터미널이 생성된다.

usart2인 이유는 디폴트 프로젝트에 usart2를 open하는 코드가 있어 했을 뿐, 프로젝트에 맞게 설정하면 되겠다.


위와 같이 설정이 마쳤으면 Renode를 Start한다.

 

반응형

'프로그래밍 > Renode' 카테고리의 다른 글

[Renode] 설치  (0) 2023.08.15

댓글