|
@@ -802,10 +802,10 @@ void reset_trinamic_drivers() {
|
802
|
802
|
}
|
803
|
803
|
|
804
|
804
|
// TMC Slave Address Conflict Detection
|
805
|
|
-//
|
|
805
|
+//
|
806
|
806
|
// Conflict detection is performed in the following way. Similar methods are used for
|
807
|
807
|
// hardware and software serial, but the implementations are indepenent.
|
808
|
|
-//
|
|
808
|
+//
|
809
|
809
|
// 1. Populate a data structure with UART parameters and addresses for all possible axis.
|
810
|
810
|
// If an axis is not in use, populate it with recognizable placeholder data.
|
811
|
811
|
// 2. For each axis in use, static_assert using a constexpr function, which counts the
|
|
@@ -815,7 +815,7 @@ void reset_trinamic_drivers() {
|
815
|
815
|
// Hardware serial names are compared as strings, since actually resolving them cannot occur in a constexpr.
|
816
|
816
|
// Using a fixed-length character array for the port name allows this to be constexpr compatible.
|
817
|
817
|
struct SanityHwSerialDetails { const char port[20]; uint32_t address; };
|
818
|
|
- #define TMC_HW_DETAIL_ARGS(A) TERN(A##_HAS_HW_SERIAL, STRINGIFY(A##_HARDWARE_SERIAL), ""), TERN0(A##_HAS_HW_SERIAL, A##_SLAVE_ADDRESS)
|
|
818
|
+ #define TMC_HW_DETAIL_ARGS(A) TERN(A##_HAS_HW_SERIAL, STRINGIFY(A##_HARDWARE_SERIAL), ""), TERN0(A##_HAS_HW_SERIAL, A##_SLAVE_ADDRESS)
|
819
|
819
|
#define TMC_HW_DETAIL(A) {TMC_HW_DETAIL_ARGS(A)}
|
820
|
820
|
constexpr SanityHwSerialDetails sanity_tmc_hw_details[] = {
|
821
|
821
|
TMC_HW_DETAIL(X), TMC_HW_DETAIL(X2),
|