Xilinx Video Timing Controller congela el procesador

1

Estoy tratando de adquirir video de un sensor de imagen usando un ZedBoard con Vivado 2014.2 y usé un proyecto de video pasante (operativo) existente y simplemente lo agregué en un debayer (interpolación de matriz de filtro de color) IP y reconfiguré algunos existentes bloques Aquí está el diagrama de bloques:

UsandounproyectoSDKmuysimple,elprocesadorseniegaainicializarlaconfiguracióndeldetectorVTC.Aquíestáelcuerpodemain.c:

init_platform();print("Hello World\n\r");
fflush(stdout);

XVtc vtc;
XVtc_Config *VtcCfgPtr = NULL;
int Status = 0;

VtcCfgPtr = XVtc_LookupConfig( XPAR_VTC_0_DEVICE_ID );

if(VtcCfgPtr == NULL) {
return 1;
}

Status = XVtc_CfgInitialize(&vtc, VtcCfgPtr, VtcCfgPtr->BaseAddress);

if(Status != XST_SUCCESS) {
return 1;
}

printf("success\n");

return 0;

Cuando enciendo la placa por primera vez, se llama a la función XVtc_CfgInitialize pero el procesador se congela internamente en la función XVtc_Reset dentro (xvtc.c línea 232). Tratar de pasar a través de esta función en el depurador también es muy difícil porque de alguna manera está saltando líneas aleatorias en la función y no las ejecuta secuencialmente (y la función XVtc_CfgInitialize parece ser llamada dos veces dentro del depurador también, y solo congela el segundo tiempo).

    
pregunta bparker

1 respuesta

1

Un pensamiento: parece que el bus AXI puede estar esperando que el periférico responda (reconociendo la escritura) y no lo está.

Esto puede ser causado por una variedad de cosas, pero tener una dirección equivocada sería una para verificar. ¿Puede agregar un Chipscope y ver qué transacciones de bus se están realizando?

    
respondido por el Martin Thompson

Lea otras preguntas en las etiquetas