Greetings! As the title above indicates, I have been unable to successfully compile for the M2 as of commit c9e2ffb6a0f00c01fbdd448c66af42ec92a915ae. The merge at commit df450532f4d17fdc6a241bd5b6a6b1f55423dc75 compiles fine, but then the LIN changes afterwards breaks things for me.
The A0 compiles without issue on both builds. The hardware is standard retail M2 with no modifications. I have installed all of the libraries from the M2 documentation, as well as pwm_lib.
MacOS Big Sur (latest)
Arduino IDE 1.8.15 (latest)
Arduino: 1.8.15 (Mac OS X), Board: "Macchina M2"
In file included from /Users/savant/Desktop/Macchina-J2534-c9e2ffb6a0f00c01fbdd448c66af42ec92a915ae/firmware/comm_channels.h:8:0,
from /Users/savant/Desktop/Macchina-J2534-c9e2ffb6a0f00c01fbdd448c66af42ec92a915ae/firmware/comm_channel_iso9141.cpp:1:
/Users/savant/Desktop/Macchina-J2534-c9e2ffb6a0f00c01fbdd448c66af42ec92a915ae/firmware/j2534_mini.h:11:0: warning: "CAN" redefined [enabled by default]
#define CAN 0x05 // CAN protocol (Uses CAN-D)
^
In file included from /Users/savant/Desktop/Macchina-J2534-c9e2ffb6a0f00c01fbdd448c66af42ec92a915ae/firmware/custom_can.h:8:0,
from /Users/savant/Desktop/Macchina-J2534-c9e2ffb6a0f00c01fbdd448c66af42ec92a915ae/firmware/comm_channels.h:7,
from /Users/savant/Desktop/Macchina-J2534-c9e2ffb6a0f00c01fbdd448c66af42ec92a915ae/firmware/comm_channel_iso9141.cpp:1:
/Users/savant/Desktop/Macchina-J2534-c9e2ffb6a0f00c01fbdd448c66af42ec92a915ae/firmware/due_can.h:45:0: note: this is the location of the previous definition
#define CAN Can0
^
In file included from /Users/savant/Desktop/Macchina-J2534-c9e2ffb6a0f00c01fbdd448c66af42ec92a915ae/firmware/custom_can.h:8:0,
from /Users/savant/Desktop/Macchina-J2534-c9e2ffb6a0f00c01fbdd448c66af42ec92a915ae/firmware/comm_channels.h:7,
from /Users/savant/Desktop/Macchina-J2534-c9e2ffb6a0f00c01fbdd448c66af42ec92a915ae/firmware/channel.h:6,
from /Users/savant/Desktop/Macchina-J2534-c9e2ffb6a0f00c01fbdd448c66af42ec92a915ae/firmware/firmware.ino:3:
/Users/savant/Desktop/Macchina-J2534-c9e2ffb6a0f00c01fbdd448c66af42ec92a915ae/firmware/due_can.h:45:0: warning: "CAN" redefined [enabled by default]
#define CAN Can0
^
In file included from /Users/savant/Desktop/Macchina-J2534-c9e2ffb6a0f00c01fbdd448c66af42ec92a915ae/firmware/firmware.ino:2:0:
/Users/savant/Desktop/Macchina-J2534-c9e2ffb6a0f00c01fbdd448c66af42ec92a915ae/firmware/j2534_mini.h:11:0: note: this is the location of the previous definition
#define CAN 0x05 // CAN protocol (Uses CAN-D)
^
/Users/savant/Desktop/Macchina-J2534-c9e2ffb6a0f00c01fbdd448c66af42ec92a915ae/firmware/comm_channel_iso9141.cpp: In member function 'void Iso9141Channel::write_data(uint8_t*, uint8_t, bool)':
comm_channel_iso9141.cpp:96:48: error: 'calc_cs' was not declared in this scope
new_buf[buf_len] = calc_cs(buf, buf_len);
^
/Users/savant/Desktop/Macchina-J2534-c9e2ffb6a0f00c01fbdd448c66af42ec92a915ae/firmware/comm_channel_iso9141.cpp: In member function 'virtual void Iso9141Channel::ioctl_get(uint32_t)':
/Users/savant/Desktop/Macchina-J2534-c9e2ffb6a0f00c01fbdd448c66af42ec92a915ae/firmware/comm_channel_iso9141.cpp:114:85: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
PCCOMM::respond_err(MSG_IOCTL_GET, ERR_FAILED, "ISO9141 IOCTL get unimplemented");
^
/Users/savant/Desktop/Macchina-J2534-c9e2ffb6a0f00c01fbdd448c66af42ec92a915ae/firmware/comm_channel_iso9141.cpp: In member function 'virtual void Iso9141Channel::wakeup(uint8_t, uint8_t*, uint8_t)':
/Users/savant/Desktop/Macchina-J2534-c9e2ffb6a0f00c01fbdd448c66af42ec92a915ae/firmware/comm_channel_iso9141.cpp:118:41: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
PCCOMM::log_message("Wakeup started");
^
/Users/savant/Desktop/Macchina-J2534-c9e2ffb6a0f00c01fbdd448c66af42ec92a915ae/firmware/comm_channel_iso9141.cpp:121:84: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
PCCOMM::respond_err(MSG_INIT_LIN_CHANNEL, ERR_FAILED, "Five baud init TODO");
^
/Users/savant/Desktop/Macchina-J2534-c9e2ffb6a0f00c01fbdd448c66af42ec92a915ae/firmware/comm_channel_iso9141.cpp:162:81: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
PCCOMM::respond_err(MSG_INIT_LIN_CHANNEL, ERR_TIMEOUT, "ECU TIMEOUT");
^
/Users/savant/Desktop/Macchina-J2534-c9e2ffb6a0f00c01fbdd448c66af42ec92a915ae/firmware/comm_channel_iso9141.cpp:170:81: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
PCCOMM::respond_err(MSG_INIT_LIN_CHANNEL, ERR_TIMEOUT, "ECU Timeout");
^
/Users/savant/Desktop/Macchina-J2534-c9e2ffb6a0f00c01fbdd448c66af42ec92a915ae/firmware/comm_channel_iso9141.cpp: At global scope:
comm_channel_iso9141.cpp:175:61: error: no 'uint8_t Iso9141Channel::calc_cs(uint8_t*, uint8_t)' member function declared in class 'Iso9141Channel'
uint8_t Iso9141Channel::calc_cs(uint8_t* buffer, uint8_t len) {
^
/Users/savant/Desktop/Macchina-J2534-c9e2ffb6a0f00c01fbdd448c66af42ec92a915ae/firmware/comm_channel_iso9141.cpp: In member function 'virtual void Iso9141Channel::ioctl_set(uint32_t, uint32_t)':
/Users/savant/Desktop/Macchina-J2534-c9e2ffb6a0f00c01fbdd448c66af42ec92a915ae/firmware/comm_channel_iso9141.cpp:219:89: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
PCCOMM::respond_err(MSG_IOCTL_SET, ERR_FAILED, "ISO9141 IOCTL set unimplemented");
^
exit status 1
'calc_cs' was not declared in this scope
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
I've confirmed these same results in Windows 10 as well.
Cheers!