Подскажите, как 2 ядра в ZYNQ делят общий ввод-вывод? Купили Zedboard, возник вопрос:
- Что будет с выводом MIO13 (принадлежит PS) если CPU_0
начнет записывать туда постоянно 0, а CPU_1 будет туда же писать 1
следующим образом:
------------------------------------
Program for CPU_0:
static int i_JE1 = 13; // PMOD JE1
int main(void)
{
int Status;
XGpioPs_Config* GpioConfigPtr;
// PS GPIO Intialization
GpioConfigPtr = XGpioPs_LookupConfig(XPAR_PS7_GPIO_0_DEVICE_ID);
if(GpioConfigPtr == NULL)
return XST_FAILURE;
Status = XGpioPs_CfgInitialize(&psGpioInstancePtr, GpioConfigPtr, GpioConfigPtr->BaseAddr);
if(XST_SUCCESS != Status)
print(" PS GPIO INIT FAILED \n\r");
// PS GPIO pin setting to Output
XGpioPs_SetDirectionPin(&psGpioInstancePtr, i_JE1,1);
XGpioPs_SetOutputEnablePin(&psGpioInstancePtr, i_JE1,1); // PMOD JE1
for(;;)
XGpioPs_WritePin(&psGpioInstancePtr,i_JE1,0);
}
----------------------------------------------
Program for CPU_1:
static int i_JE1 = 13; // PMOD JE1
int main(void)
{
int Status;
XGpioPs_Config* GpioConfigPtr;
// PS GPIO Intialization
GpioConfigPtr = XGpioPs_LookupConfig(XPAR_PS7_GPIO_1_DEVICE_ID);
if(GpioConfigPtr == NULL)
return XST_FAILURE;
Status = XGpioPs_CfgInitialize(&psGpioInstancePtr, GpioConfigPtr, GpioConfigPtr->BaseAddr);
if(XST_SUCCESS != Status)
print(" PS GPIO INIT FAILED \n\r");
// PS GPIO pin setting to Output
XGpioPs_SetDirectionPin(&psGpioInstancePtr, i_JE1,1);
XGpioPs_SetOutputEnablePin(&psGpioInstancePtr, i_JE1,1); // PMOD JE1
for(;;)
XGpioPs_WritePin(&psGpioInstancePtr,i_JE1,1);
}
Спасибо.