2012-03-15 3 views
1

직렬 인터페이스를 작성하여 직렬 인터페이스를 통해 개발 한 FPGA 프로젝트에 파일을 보내고 있습니다.한 번에 전체 파일 또는 바이트를 읽으십시오.

프로그램은 하나의 패킷 (16 바이트)을 FPGA로 보내야하고, 수신 확인시 프로그램은 다음 패킷을 보내야합니다.

내 질문은 : 파일을 읽을 때

, 그것은 메모리/바이트 배열에 전체 파일을 읽는 연습을한다?

또는 프로그램은 한 번에 파일에서 16 바이트 만 읽고 다음 패킷을 보낼 때 다음 16 바이트를 읽어야합니까? 사전에

감사합니다,

+3

파일의 크기는 어느 정도입니까? (다소 영향을 미칩니다 ...) –

+0

당신은 더 구체적이어야합니다. FPGA의 메모리 용량은 얼마입니까? 표준 파일 크기는 얼마입니까? 시스템에 다른 일이 있습니까? – scottheckel

+0

안녕 모두, 미안 해요 - 내가 진술 했어야했다. 파일은 최대 50KB입니다. – TheEngineerer

답변

0

마이크, 당신은하지 이제까지 는 간단한 코드는 한 번에 16 바이트를 읽어을 사용하는 코드 것 한 번에 16 개 이상의 바이트 필요하다는 것을 감안할 때 그리고 16을 더 읽습니다.

전체 파일을 한 번에 읽으려고하면 추가 복잡성을 추가해야합니다. 버퍼링 코드와 end-of-array 경계 검사를 추가해야합니다. 당신은 그 어떤 것도 필요로하지 않습니다. 단순하게 유지하십시오. 필요한 것을 읽고 사용하고 더 읽으십시오.

+0

감사합니다. 16 바이트 접근 방식을 사용하겠습니다. – TheEngineerer

0

가장 일반적인 해결책은 한 번에 16 바이트 (또는 처리해야하는 프로그램이 많음)를 읽는 것입니다.

파일이 매우 큰 경우 전체 파일을 읽는 것이 더 나빠질 수 있으며 매우 큰 경우 OutOfMemoryException이 발생할 수 있습니다.

파일이 비교적 작 으면 두 기술간에 많은 차이가 있음을 눈치 채지 못할 것입니다.

+0

감사합니다. 16 바이트 접근 방식으로 접근하겠습니다. – TheEngineerer

관련 문제