카테고리 없음

simavr로 UART <-> stdin/out 연결

진모씨 2015. 4. 27. 19:34

simavr에는 이미 UART랑 pty랑 연결시켜주는 기능이 있..어요! examples/parts 폴더에 있어요.

하지만 이걸 소스코드에서 따로 안쓰고 있답니다! (예제에는 이걸 어떻게 쓰는 지 나와있어요.)


이걸 쓰는 방법은 examples/board_simduino의 simduino.c에 있었어요. 분석해봅시다!


examples/board_simduino/simduino.c

42:#include "uart_pty.h"

48:uart_pty_t uart_pty;

188: uart_pty_stop(&uart_pty);

242: uart_pty_init(avr, &uart_pty);

243: uart_pty_connect(&uart_pty, '0');


오! 짱쉽네요! 이것만 해주면 되는거였어요! (uart_pty_connect의 '0'은 해당 UART 포트명에 따라 UART0은 '0', UART1은 '1' 이렇게 해주시면 되요.)

(어떻게 돌아가는지 보려고 uart_pty.c 분석한 것은 안비밀)


simavr/sim/run_avr.c에 저걸 추가해주어요!

uart_pty.h를 인클루드시키고..

uart_pty_t uart_pty를 선언해주고..


이제 include 경로랑 소스 경로를 추가해줍시당!

simduino의 Makefile을 참조해보아요.


Makefile에서 IPATH += ../examples/parts를 IPATH 설정 부분 밑부분에 넣어주고.. VPATH += ../examples/parts도 넣어주죠.

sim := 어쩌구 되있는부분에 ${wildcard ../examples/parts/uart_pty.c}를 넣어요!


그 다음에 make하고.. SIMAVR_UART_XTERM=1을 환경변수에 넣은 채로 실행하면 xterm창(X-Window고 GUI에요)이 떠요!


simavr은 참 좋은게, hackable해요!

소스 분석해보면서 symexec avr로 한번 포팅해봐야겠어요.