2010-07-15 3 views
0

저는 SDCC 프로젝트에서 단위 테스트를하기 위해 uCsim을 사용하고 있습니다. uCsim/S51에서 특정 baud에서`cat '파일을 만드는 방법은 무엇입니까?

하면

s51 -s /dev/tty PROGRAM.ihx 

또는 후자의 형태에있어서

s51 -S in=testdata.in,out=testdata.out PROGRAM.ihx 

의해 직렬 광고 트래픽을 시뮬레이션 할 수있는, 데이터는 즉시 프레임이 많이 발생 시뮬레이터로 보내진다 잃어버린. 그래서 대신 일반 파일에 테스트 데이터, 대신 파이프를 사용하여 주어진 : 이제

s51 -S in=<(cat testdata.in),out=testdata.out PROGRAM.ihx 

, 어떻게 내가 '고양이'유틸리티의 출력 전송을 제어 할 수 있습니다? 아니면 특정 속도로 비트를 출력하는 데 사용할 수있는 또 다른 유틸리티가 있습니까?

답변

1

답변 1이 잘못되었습니다. 아무도 파일의 내용을 시리얼 라인에 "피드"하지 않습니다. uCsim은 필요할 때 파일에서 읽습니다. 보 레이트는 타이머와 uart의 SFR에 의해 제어됩니다. 필요한 틱 수를 시뮬레이트하면 파일에서 1 바이트를 읽습니다.

2

in = 파일을 보내는 속도는 속도가 설정되는 방식이 아닙니다. 시뮬레이터는 응용 프로그램이 직렬 포트를 초기화하고 읽을 준비가 된 시점을 알 수있는 방법이 없습니다. 직렬 초기화 코드가 실행되기 전에 시뮬레이터가 시뮬레이션 된 직렬 포트를 공급하기 때문에 데이터가 누락되었을 수 있습니다.

mkfifo (맨 페이지 참조)으로 fifo 파일을 설정 한 다음 in = 매개 변수로 사용하면됩니다. 그런 다음 시뮬레이트 된 애플리케이션이 실행되고 실행 된 후 fifo 파일에 데이터를 입력하십시오.

관련 문제