Added can test code

This commit is contained in:
paul nehlich
2024-06-17 12:32:07 +02:00
parent 6af34d9559
commit ecf85cf610
5 changed files with 959 additions and 6 deletions

View File

@ -110,7 +110,7 @@ int canps_poll_example(void)
*/
Status = CanPsPolledExample(&Can, XPAR_XCANPS_0_BASEADDR);
xil_printf("114 \r\n");
if (Status != XST_SUCCESS) {
xil_printf("CAN Polled Mode Test Failed\r\n");
return XST_FAILURE;
@ -149,16 +149,24 @@ int CanPsPolledExample(XCanPs *CanInstancePtr, UINTPTR BaseAddress)
/*
* Initialize the Can device.
*/
xil_printf("Initialize the Can device.\r\n");
xil_printf("BaseAdress 0x%p\r\n", BaseAddress);
ConfigPtr = XCanPs_LookupConfig(BaseAddress);
if (CanInstPtr == NULL) {
xil_printf("NULL\r\n");
return XST_FAILURE;
}
xil_printf("Status = XCanPs_CfgInitialize()\r\n");
Status = XCanPs_CfgInitialize(CanInstPtr,
ConfigPtr,
ConfigPtr->BaseAddr);
if (Status != XST_SUCCESS) {
xil_printf("Status != XST_SUCCESS\r\n");
return XST_FAILURE;
}
@ -176,12 +184,15 @@ int CanPsPolledExample(XCanPs *CanInstancePtr, UINTPTR BaseAddress)
* Register (BRPR) and Bit Timing Register (BTR).
*/
XCanPs_EnterMode(CanInstPtr, XCANPS_MODE_CONFIG);
xil_printf("ENTER MODE\r\n");
while (XCanPs_GetMode(CanInstPtr) != XCANPS_MODE_CONFIG);
/*
* Setup Baud Rate Prescaler Register (BRPR) and
* Bit Timing Register (BTR).
*/
xil_printf("Setup Baud Rate Prescaler Register (BRPR) and Bit Timing Register (BTR).\r\n");
XCanPs_SetBaudRatePrescaler(CanInstPtr, TEST_BRPR_BAUD_PRESCALAR);
XCanPs_SetBitTiming(CanInstPtr, TEST_BTR_SYNCJUMPWIDTH,
TEST_BTR_SECOND_TIMESEGMENT,
@ -191,6 +202,7 @@ int CanPsPolledExample(XCanPs *CanInstancePtr, UINTPTR BaseAddress)
/*
* Enter Loop Back Mode.
*/
xil_printf("Enter Loop Back Mode\r\n");
XCanPs_EnterMode(CanInstPtr, XCANPS_MODE_LOOPBACK);
while (XCanPs_GetMode(CanInstPtr) != XCANPS_MODE_LOOPBACK);
@ -198,6 +210,8 @@ int CanPsPolledExample(XCanPs *CanInstancePtr, UINTPTR BaseAddress)
* Send a frame, receive the frame via the loop back and verify its
* contents.
*/
xil_printf("Send a frame, receive the frame via the loop back and verify its contents.\r\n");
Status = SendFrame(CanInstPtr);
if (Status != XST_SUCCESS) {
return Status;