2017-09-06 10 views
0

Zedboard의 DDR 메모리로 전송하려는 SD 카드에 파일이 있습니다. 이 작업을 수행하려면 베어 메탈 (baremetal) 응용 프로그램을 사용하고 있습니다. 이것은 2048 바이트 미만의 데이터에서 작동하지만 데이터가 2048 바이트를 넘으면 Zynq 프로세서가 데이터 전송을 시도 할 때 정지합니다.Zedboard SD 카드에서 DDR로 데이터 전송

함수 호출은 SD 카드 데이터를 읽어 DDR 메모리로 전송 :

FileOpResult = f_read (& fil_obj (무효 *) DDRDestAddr, DDRTxSize * BR);

DDRDestAddr이다 XPAR_PS7_DDR0_S_AXI_BASEADDR (0x00100000라는) 2048에서와

위 DDRTxSize 내가 DDR 메모리에 SD 카드에서 전송할 수있는 데이터의 양에 일부 제한이있을 때 Zynq 프로세서가 응답하지? 이걸 어디에서 바꿀 수 있니? 아니면 내가 만든 근본적인 실수가 있습니까?

업데이트 : 단순히 0x00200000 대신 DDR 메모리 주소의 다른 영역으로 데이터를 전송하면 문제가 해결됩니다. 정확히 0x00100000이 DDR 메모리의 기본 주소라는 것을 분명히 xparameters.h에서 볼 수없는 이유는 확실치 않습니다.

~ 13 메가 바이트가 SD 카드에서 0x00200000 주소로 시작되는 DDR로 성공적으로 전송되었습니다.

답변

0

0x00200000 대신 DDR 메모리 주소의 다른 영역으로 데이터를 전송하면 문제가 해결됩니다. 정확히 0x00100000이 DDR 메모리의 기본 주소라는 것을 분명히 xparameters.h에서 볼 수없는 이유는 확실치 않습니다.

~ 13 메가 바이트가 SD 카드에서 0x00200000 주소로 시작되는 DDR로 성공적으로 전송되었습니다.