Post by sinai1 on Jun 23, 2023 18:44:44 GMT
Dear admins, can please add the upgrade of CAN FD Library to the shield buddy installer, I attach the new library. in this post and also a brief descrition of the files replaced. the file MultiCAN_v3.zip contain the updated library also the files i edith to get it runing.
I detected a problem on line 132 of "Variant.h", this include a line that create a issue with the library because redefine some functions of the library:
#include "AurixLiteTC275.h"
the error i get is this:
In file included from C:\Program Files (x86)\Arduino\hardware\aurduino_Dx/aurix/variants/tc275/Variant.h:132:0,
from <command-line>:0:
C:\Program Files (x86)\Arduino\hardware\aurduino_Dx\aurix\variants\TC275\MultiCAN.cpp: In function 'void CAN0_SendMessage_dword(uint32, uint32, uint32, IfxMultican_DataLengthCode)':
C:\Program Files (x86)\Arduino\hardware\aurduino_Dx/aurix/variants/tc275/AurixLiteTC275.h:136:31: error: redefinition of 'void CAN0_SendMessage_dword(uint32, uint32, uint32, IfxMultican_DataLengthCode)'
#define CAN_SendMessage_dword CAN0_SendMessage_dword
^
C:\Program Files (x86)\Arduino\hardware\aurduino_Dx\aurix\variants\TC275\MultiCAN.cpp:1036:6: note: in expansion of macro 'CAN_SendMessage_dword'
void CAN_SendMessage_dword(uint32 CAN_Id, uint32 Lowdata, uint32 Highdata, IfxMultican_DataLengthCode dlc)
^
C:\Program Files (x86)\Arduino\hardware\aurduino_Dx\aurix\variants\TC275\MultiCAN.cpp:234:6: note: 'void CAN0_SendMessage_dword(uint32, uint32, uint32, IfxMultican_DataLengthCode)' previously defined here
void CAN0_SendMessage_dword(uint32 CAN_Id, uint32 Lowdata, uint32 Highdata, IfxMultican_DataLengthCode dlc)
^
In file included from C:\Program Files (x86)\Arduino\hardware\aurduino_Dx/aurix/variants/tc275/Variant.h:132:0,
from <command-line>:0:
C:\Program Files (x86)\Arduino\hardware\aurduino_Dx\aurix\variants\TC275\MultiCAN.cpp: In function 'int CAN0_SendMessage(uint32, CANMessagePayloadType*, IfxMultican_DataLengthCode)':
C:\Program Files (x86)\Arduino\hardware\aurduino_Dx/aurix/variants/tc275/AurixLiteTC275.h:135:26: error: redefinition of 'int CAN0_SendMessage(uint32, CANMessagePayloadType*, IfxMultican_DataLengthCode)'
#define CAN_SendMessage CAN0_SendMessage
^
C:\Program Files (x86)\Arduino\hardware\aurduino_Dx\aurix\variants\TC275\MultiCAN.cpp:1049:5: note: in expansion of macro 'CAN_SendMessage'
int CAN_SendMessage(uint32 CAN_Id, CANMessagePayloadType *msg1, IfxMultican_DataLengthCode dlc)
^
C:\Program Files (x86)\Arduino\hardware\aurduino_Dx\aurix\variants\TC275\MultiCAN.cpp:247:5: note: 'int CAN0_SendMessage(uint32, CANMessagePayloadType*, IfxMultican_DataLengthCode)' previously defined here
int CAN0_SendMessage(uint32 CAN_Id, CANMessagePayloadType *msg1, IfxMultican_DataLengthCode dlc)
^
exit status 1
Error compiling for board ShieldBuddyTC275_Dx.
caused by this definitions on the file, lines 130 to 136:
/* CAN Interface */
/* Map to CAN0 P207 P20.8 */
#define CAN_Init CAN0_Init
#define CAN_TxInit CAN0_TxInit
#define CAN_RxInit CAN0_RxInit
#define CAN_SendMessage CAN0_SendMessage
#define CAN_SendMessage_dword CAN0_SendMessage_dword
also please remenber to please change line 218 of "IfxMultican.h", this will enable CAN_FD buffer size due CAN FD can use up to 64 bytes for data:
uint32 data[2]; /**< \brief CAN message data */
to:
uint32 data[16]; /**< \brief CAN message data */
I detected a problem on line 132 of "Variant.h", this include a line that create a issue with the library because redefine some functions of the library:
#include "AurixLiteTC275.h"
the error i get is this:
In file included from C:\Program Files (x86)\Arduino\hardware\aurduino_Dx/aurix/variants/tc275/Variant.h:132:0,
from <command-line>:0:
C:\Program Files (x86)\Arduino\hardware\aurduino_Dx\aurix\variants\TC275\MultiCAN.cpp: In function 'void CAN0_SendMessage_dword(uint32, uint32, uint32, IfxMultican_DataLengthCode)':
C:\Program Files (x86)\Arduino\hardware\aurduino_Dx/aurix/variants/tc275/AurixLiteTC275.h:136:31: error: redefinition of 'void CAN0_SendMessage_dword(uint32, uint32, uint32, IfxMultican_DataLengthCode)'
#define CAN_SendMessage_dword CAN0_SendMessage_dword
^
C:\Program Files (x86)\Arduino\hardware\aurduino_Dx\aurix\variants\TC275\MultiCAN.cpp:1036:6: note: in expansion of macro 'CAN_SendMessage_dword'
void CAN_SendMessage_dword(uint32 CAN_Id, uint32 Lowdata, uint32 Highdata, IfxMultican_DataLengthCode dlc)
^
C:\Program Files (x86)\Arduino\hardware\aurduino_Dx\aurix\variants\TC275\MultiCAN.cpp:234:6: note: 'void CAN0_SendMessage_dword(uint32, uint32, uint32, IfxMultican_DataLengthCode)' previously defined here
void CAN0_SendMessage_dword(uint32 CAN_Id, uint32 Lowdata, uint32 Highdata, IfxMultican_DataLengthCode dlc)
^
In file included from C:\Program Files (x86)\Arduino\hardware\aurduino_Dx/aurix/variants/tc275/Variant.h:132:0,
from <command-line>:0:
C:\Program Files (x86)\Arduino\hardware\aurduino_Dx\aurix\variants\TC275\MultiCAN.cpp: In function 'int CAN0_SendMessage(uint32, CANMessagePayloadType*, IfxMultican_DataLengthCode)':
C:\Program Files (x86)\Arduino\hardware\aurduino_Dx/aurix/variants/tc275/AurixLiteTC275.h:135:26: error: redefinition of 'int CAN0_SendMessage(uint32, CANMessagePayloadType*, IfxMultican_DataLengthCode)'
#define CAN_SendMessage CAN0_SendMessage
^
C:\Program Files (x86)\Arduino\hardware\aurduino_Dx\aurix\variants\TC275\MultiCAN.cpp:1049:5: note: in expansion of macro 'CAN_SendMessage'
int CAN_SendMessage(uint32 CAN_Id, CANMessagePayloadType *msg1, IfxMultican_DataLengthCode dlc)
^
C:\Program Files (x86)\Arduino\hardware\aurduino_Dx\aurix\variants\TC275\MultiCAN.cpp:247:5: note: 'int CAN0_SendMessage(uint32, CANMessagePayloadType*, IfxMultican_DataLengthCode)' previously defined here
int CAN0_SendMessage(uint32 CAN_Id, CANMessagePayloadType *msg1, IfxMultican_DataLengthCode dlc)
^
exit status 1
Error compiling for board ShieldBuddyTC275_Dx.
caused by this definitions on the file, lines 130 to 136:
/* CAN Interface */
/* Map to CAN0 P207 P20.8 */
#define CAN_Init CAN0_Init
#define CAN_TxInit CAN0_TxInit
#define CAN_RxInit CAN0_RxInit
#define CAN_SendMessage CAN0_SendMessage
#define CAN_SendMessage_dword CAN0_SendMessage_dword
also please remenber to please change line 218 of "IfxMultican.h", this will enable CAN_FD buffer size due CAN FD can use up to 64 bytes for data:
uint32 data[2]; /**< \brief CAN message data */
to:
uint32 data[16]; /**< \brief CAN message data */