문제

SDCC 프로젝트에서 UNIT 테스트를 수행하기 위해 UCSIM을 사용하고 있습니다.

UCSIM / S51에서는 직렬 줄 트래픽을

시뮬레이션 할 수 있습니다.
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
.

이제`cat '유틸리티에서 출력 보드를 어떻게 제어 할 수 있습니까?아니면 특정 속도로 비트를 출력하는 데 사용할 수있는 또 다른 유틸리티가 있습니까?

도움이 되었습니까?

해결책

답변 1이 잘못되었습니다.아무도 직렬 줄에 파일의 콘텐츠를 "피드"합니다.UCSIM은 필요한 경우 파일을 읽습니다.전송 속도는 타이머 및 UART의 SFR에 의해 제어됩니다.필요한 틱 수가 시뮬레이션되면 파일에서 1 바이트가 읽혀집니다.

다른 팁

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

다음과 같은 작업은 generacodicicetagcode가있는 FIFO 파일을 설정하는 것입니다 (맨 페이지 참조). 그런 다음 in= 매개 변수로 사용하십시오.그런 다음 시뮬레이션 된 응용 프로그램이 실행되고 실행 된 후 데이터가있는 FIFO 파일을 피드합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top