특정 보드에서`cat '파일을`어떻게해야합니까?
-
16-09-2020 - |
문제
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 파일을 피드합니다.
제휴하지 않습니다 StackOverflow