Skip to content

Commit

Permalink
syscfg: Lock pin/peripheral assignments
Browse files Browse the repository at this point in the history
Lets not have sysconfig randomly assign pins and peripherials. We want
fixed assignments that we can track in git, and change where needed.

Signed-off-by: Olliver Schinagl <[email protected]>
  • Loading branch information
oliv3r committed Aug 17, 2024
1 parent dde9ff5 commit cd34759
Show file tree
Hide file tree
Showing 5 changed files with 183 additions and 213 deletions.
84 changes: 39 additions & 45 deletions coordinator/Z-Stack_3.x.0/znp_CC1352P_2_LAUNCHXL.syscfg
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ const Power = scripting.addModule("/ti/drivers/Power");
const RF = scripting.addModule("/ti/drivers/RF");
const SHA2 = scripting.addModule("/ti/drivers/SHA2");
const SHA21 = SHA2.addInstance();
const SPI = scripting.addModule("/ti/drivers/SPI", {}, false);
const SPI1 = SPI.addInstance();
const TRNG = scripting.addModule("/ti/drivers/TRNG");
const TRNG1 = TRNG.addInstance();
const Button = scripting.addModule("/ti/drivers/apps/Button");
Expand Down Expand Up @@ -70,9 +72,12 @@ CCFG.ccfgTemplate.$name = "ti_devices_CCFG_CCFGCC26XXTemplate0";

rfdesign.rfDesign = "LAUNCHXL-CC1352P-2";

Display1.$hardware = system.deviceData.board.components.XDS110UART;
Display1.$name = "CONFIG_DISPLAY";
Display1.uart.$name = "CONFIG_DISPLAY_UART";
Display1.$hardware = system.deviceData.board.components.XDS110UART;
Display1.$name = "CONFIG_DISPLAY";
Display1.uart.$name = "CONFIG_DISPLAY_UART";
Display1.uart.uart.$assign = "UART0";
Display1.uart.uart.txPin.$assign = "boosterpack.4";
Display1.uart.uart.rxPin.$assign = "boosterpack.3";

AESCBC1.$name = "CONFIG_AESCBC_0";

Expand All @@ -98,43 +103,55 @@ NVS2.externalFlash.$name = "ti_drivers_nvs_NVSSPI25X0";
NVS2.externalFlash.regionSize = 0x256000;
NVS2.externalFlash.verifyBufferSize = 64;

RF.$hardware = system.deviceData.board.components["SKY13317-373LF"];
RF.$hardware = system.deviceData.board.components["SKY13317-373LF"];
RF.rfAntennaPin0.$assign = "DIO_28";
RF.rfAntennaPin1.$assign = "DIO_29";
RF.rfAntennaPin2.$assign = "DIO_30";

SHA21.$name = "CONFIG_SHA2_0";

TRNG1.$name = "CONFIG_TRNG_0";

Button1.$name = "CONFIG_BTN_LEFT";
Button1.$hardware = system.deviceData.board.components["BTN-1"];
Button1.gpioPin.$name = "CONFIG_GPIO_BTN1";
Button1.gpioPin.pull = "Pull Up";
Button1.$name = "CONFIG_BTN_LEFT";
Button1.$hardware = system.deviceData.board.components["BTN-1"];
Button1.gpioPin.$name = "CONFIG_GPIO_BTN1";
Button1.gpioPin.pull = "Pull Up";
Button1.button.$assign = "boosterpack.13";

Button2.$name = "CONFIG_BTN_RIGHT";
Button2.$hardware = system.deviceData.board.components["BTN-2"];
Button2.gpioPin.$name = "CONFIG_GPIO_BTN2";
Button2.gpioPin.pull = "Pull Up";
Button2.$name = "CONFIG_BTN_RIGHT";
Button2.$hardware = system.deviceData.board.components["BTN-2"];
Button2.gpioPin.$name = "CONFIG_GPIO_BTN2";
Button2.gpioPin.pull = "Pull Up";
Button2.button.$assign = "boosterpack.8";

LED1.$name = "CONFIG_LED_RED";
LED1.$hardware = system.deviceData.board.components.LED_RED;
LED1.gpioPin.$name = "CONFIG_GPIO_RLED";
LED1.$name = "CONFIG_LED_RED";
LED1.$hardware = system.deviceData.board.components.LED_RED;
LED1.ledPin.$assign = "boosterpack.39";
LED1.gpioPin.$name = "CONFIG_GPIO_RLED";

LED2.$name = "CONFIG_LED_GREEN";
LED2.$hardware = system.deviceData.board.components.LED_GREEN;
LED2.gpioPin.$name = "CONFIG_GPIO_GLED";
LED2.$name = "CONFIG_LED_GREEN";
LED2.$hardware = system.deviceData.board.components.LED_GREEN;
LED2.ledPin.$assign = "boosterpack.40";
LED2.gpioPin.$name = "CONFIG_GPIO_GLED";

const NVSSPI25XDevice = scripting.addModule("/ti/drivers/nvs/NVSSPI25XDevice", {}, false);
const NVSSPI25XDevice1 = NVSSPI25XDevice.addInstance({}, false);
NVSSPI25XDevice1.$name = "CONFIG_NVS_SPI_0";
NVS2.externalFlash.spiFlashDevice = NVSSPI25XDevice1;
NVSSPI25XDevice1.chipSelect.$assign = "boosterpack.38";
NVSSPI25XDevice1.chipSelectPinInstance.$name = "CONFIG_GPIO_0";

const SPI = scripting.addModule("/ti/drivers/SPI", {}, false);
const SPI1 = SPI.addInstance({}, false);
SPI1.$name = "CONFIG_SPI_0";
NVSSPI25XDevice1.sharedSpiInstance = SPI1;
SPI1.sclkPinInstance.$name = "CONFIG_PIN_SPI_SCLK";
SPI1.pociPinInstance.$name = "CONFIG_PIN_SPI_MISO";
SPI1.picoPinInstance.$name = "CONFIG_PIN_SPI_MOSI";
SPI1.spi.$assign = "SSI0";
SPI1.spi.sclkPin.$assign = "boosterpack.7";
SPI1.spi.pociPin.$assign = "boosterpack.14";
SPI1.spi.picoPin.$assign = "boosterpack.15";
SPI1.spi.dmaRxChannel.$assign = "DMA_CH3";
SPI1.spi.dmaTxChannel.$assign = "DMA_CH4";

BIOS.assertsEnabled = false;
BIOS.rtsGateType = "BIOS_GateMutexPri";
Expand All @@ -154,7 +171,8 @@ HeapCallback.isBlockingInstFxn = "osalHeapIsBlockingFxn";
Clock.tickPeriod = 10;
Clock.swiPriority = 4;

const Timer = scripting.addModule("/ti/sysbios/family/arm/cc26xx/Timer", {}, false);
const Timer = scripting.addModule("/ti/sysbios/family/arm/cc26xx/Timer", {}, false);
Timer.rtc.$assign = "RTC0";

Idle1.$name = "powerIdle";
Idle1.idleFxn = "Power_idleFunc";
Expand Down Expand Up @@ -189,27 +207,3 @@ zstack.advanced.$name = "ti_zstack_advanced_zstack_advanc
zstack.advanced.routing.$name = "ti_zstack_advanced_zstack_routing0";
zstack.advanced.packetSending.$name = "ti_zstack_advanced_zstack_packet_sending0";
zstack.advanced.tableSize.$name = "ti_zstack_advanced_zstack_table_size0";

/**
* Pinmux solution for unlocked pins/peripherals. This ensures that minor changes to the automatic solver in a future
* version of the tool will not impact the pinmux you originally saw. These lines can be completely deleted in order to
* re-solve from scratch.
*/
Display1.uart.uart.$suggestSolution = "UART0";
Display1.uart.uart.txPin.$suggestSolution = "boosterpack.4";
Display1.uart.uart.rxPin.$suggestSolution = "boosterpack.3";
RF.rfAntennaPin0.$suggestSolution = "DIO_28";
RF.rfAntennaPin1.$suggestSolution = "DIO_29";
RF.rfAntennaPin2.$suggestSolution = "DIO_30";
Button1.button.$suggestSolution = "boosterpack.13";
Button2.button.$suggestSolution = "boosterpack.8";
LED1.ledPin.$suggestSolution = "boosterpack.39";
LED2.ledPin.$suggestSolution = "boosterpack.40";
NVSSPI25XDevice1.chipSelect.$suggestSolution = "boosterpack.38";
SPI1.spi.$suggestSolution = "SSI0";
SPI1.spi.sclkPin.$suggestSolution = "boosterpack.7";
SPI1.spi.pociPin.$suggestSolution = "boosterpack.14";
SPI1.spi.picoPin.$suggestSolution = "boosterpack.15";
SPI1.spi.dmaRxChannel.$suggestSolution = "DMA_CH3";
SPI1.spi.dmaTxChannel.$suggestSolution = "DMA_CH4";
Timer.rtc.$suggestSolution = "RTC0";
76 changes: 35 additions & 41 deletions coordinator/Z-Stack_3.x.0/znp_CC26X2R1_LAUNCHXL.syscfg
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ const Power = scripting.addModule("/ti/drivers/Power");
const RF = scripting.addModule("/ti/drivers/RF");
const SHA2 = scripting.addModule("/ti/drivers/SHA2");
const SHA21 = SHA2.addInstance();
const SPI = scripting.addModule("/ti/drivers/SPI", {}, false);
const SPI1 = SPI.addInstance();
const TRNG = scripting.addModule("/ti/drivers/TRNG");
const TRNG1 = TRNG.addInstance();
const Button = scripting.addModule("/ti/drivers/apps/Button");
Expand Down Expand Up @@ -65,9 +67,12 @@ CCFG.levelBootloaderBackdoor = "Active low";
CCFG.enableDCDC = false;
CCFG.ccfgTemplate.$name = "ti_devices_CCFG_CCFGCC26XXTemplate0";

Display1.$hardware = system.deviceData.board.components.XDS110UART;
Display1.$name = "CONFIG_DISPLAY";
Display1.uart.$name = "CONFIG_DISPLAY_UART";
Display1.$hardware = system.deviceData.board.components.XDS110UART;
Display1.$name = "CONFIG_DISPLAY";
Display1.uart.$name = "CONFIG_DISPLAY_UART";
Display1.uart.uart.$assign = "UART0";
Display1.uart.uart.txPin.$assign = "boosterpack.4";
Display1.uart.uart.rxPin.$assign = "boosterpack.3";

AESCBC1.$name = "CONFIG_AESCBC_0";

Expand Down Expand Up @@ -97,37 +102,46 @@ SHA21.$name = "CONFIG_SHA2_0";

TRNG1.$name = "CONFIG_TRNG_0";

Button1.$name = "CONFIG_BTN_LEFT";
Button1.$hardware = system.deviceData.board.components["BTN-1"];
Button1.gpioPin.$name = "CONFIG_GPIO_BTN1";
Button1.gpioPin.pull = "Pull Up";
Button1.$name = "CONFIG_BTN_LEFT";
Button1.$hardware = system.deviceData.board.components["BTN-1"];
Button1.gpioPin.$name = "CONFIG_GPIO_BTN1";
Button1.gpioPin.pull = "Pull Up";
Button1.button.$assign = "boosterpack.13";

Button2.$name = "CONFIG_BTN_RIGHT";
Button2.$hardware = system.deviceData.board.components["BTN-2"];
Button2.gpioPin.$name = "CONFIG_GPIO_BTN2";
Button2.gpioPin.pull = "Pull Up";
Button2.$name = "CONFIG_BTN_RIGHT";
Button2.$hardware = system.deviceData.board.components["BTN-2"];
Button2.gpioPin.$name = "CONFIG_GPIO_BTN2";
Button2.gpioPin.pull = "Pull Up";
Button2.button.$assign = "boosterpack.12";

LED1.$name = "CONFIG_LED_RED";
LED1.$hardware = system.deviceData.board.components.LED_RED;
LED1.gpioPin.$name = "CONFIG_GPIO_RLED";
LED1.$name = "CONFIG_LED_RED";
LED1.$hardware = system.deviceData.board.components.LED_RED;
LED1.ledPin.$assign = "boosterpack.39";
LED1.gpioPin.$name = "CONFIG_GPIO_RLED";

LED2.$name = "CONFIG_LED_GREEN";
LED2.$hardware = system.deviceData.board.components.LED_GREEN;
LED2.gpioPin.$name = "CONFIG_GPIO_GLED";
LED2.$name = "CONFIG_LED_GREEN";
LED2.$hardware = system.deviceData.board.components.LED_GREEN;
LED2.ledPin.$assign = "boosterpack.40";
LED2.gpioPin.$name = "CONFIG_GPIO_GLED";

const NVSSPI25XDevice = scripting.addModule("/ti/drivers/nvs/NVSSPI25XDevice", {}, false);
const NVSSPI25XDevice1 = NVSSPI25XDevice.addInstance({}, false);
NVSSPI25XDevice1.$name = "CONFIG_NVS_SPI_0";
NVS2.externalFlash.spiFlashDevice = NVSSPI25XDevice1;
NVSSPI25XDevice1.chipSelect.$assign = "boosterpack.38";
NVSSPI25XDevice1.chipSelectPinInstance.$name = "CONFIG_GPIO_0";

const SPI = scripting.addModule("/ti/drivers/SPI", {}, false);
const SPI1 = SPI.addInstance({}, false);
SPI1.$name = "CONFIG_SPI_0";
NVSSPI25XDevice1.sharedSpiInstance = SPI1;
SPI1.sclkPinInstance.$name = "CONFIG_PIN_SPI_SCLK";
SPI1.pociPinInstance.$name = "CONFIG_PIN_SPI_MISO";
SPI1.picoPinInstance.$name = "CONFIG_PIN_SPI_MOSI";
SPI1.spi.$assign = "SSI0";
SPI1.spi.sclkPin.$assign = "boosterpack.7";
SPI1.spi.pociPin.$assign = "boosterpack.14";
SPI1.spi.picoPin.$assign = "boosterpack.15";
SPI1.spi.dmaRxChannel.$assign = "DMA_CH3";
SPI1.spi.dmaTxChannel.$assign = "DMA_CH4";

BIOS.assertsEnabled = false;
BIOS.rtsGateType = "BIOS_GateMutexPri";
Expand All @@ -147,7 +161,8 @@ HeapCallback.isBlockingInstFxn = "osalHeapIsBlockingFxn";
Clock.tickPeriod = 10;
Clock.swiPriority = 4;

const Timer = scripting.addModule("/ti/sysbios/family/arm/cc26xx/Timer", {}, false);
const Timer = scripting.addModule("/ti/sysbios/family/arm/cc26xx/Timer", {}, false);
Timer.rtc.$assign = "RTC0";

Idle1.$name = "powerIdle";
Idle1.idleFxn = "Power_idleFunc";
Expand Down Expand Up @@ -182,24 +197,3 @@ zstack.advanced.$name = "ti_zstack_advanced_zstack_advanc
zstack.advanced.routing.$name = "ti_zstack_advanced_zstack_routing0";
zstack.advanced.packetSending.$name = "ti_zstack_advanced_zstack_packet_sending0";
zstack.advanced.tableSize.$name = "ti_zstack_advanced_zstack_table_size0";

/**
* Pinmux solution for unlocked pins/peripherals. This ensures that minor changes to the automatic solver in a future
* version of the tool will not impact the pinmux you originally saw. These lines can be completely deleted in order to
* re-solve from scratch.
*/
Display1.uart.uart.$suggestSolution = "UART0";
Display1.uart.uart.txPin.$suggestSolution = "boosterpack.4";
Display1.uart.uart.rxPin.$suggestSolution = "boosterpack.3";
Button1.button.$suggestSolution = "boosterpack.13";
Button2.button.$suggestSolution = "boosterpack.12";
LED1.ledPin.$suggestSolution = "boosterpack.39";
LED2.ledPin.$suggestSolution = "boosterpack.40";
NVSSPI25XDevice1.chipSelect.$suggestSolution = "boosterpack.38";
SPI1.spi.$suggestSolution = "SSI0";
SPI1.spi.sclkPin.$suggestSolution = "boosterpack.7";
SPI1.spi.pociPin.$suggestSolution = "boosterpack.14";
SPI1.spi.picoPin.$suggestSolution = "boosterpack.15";
SPI1.spi.dmaRxChannel.$suggestSolution = "DMA_CH3";
SPI1.spi.dmaTxChannel.$suggestSolution = "DMA_CH4";
Timer.rtc.$suggestSolution = "RTC0";
84 changes: 39 additions & 45 deletions coordinator/Z-Stack_3.x.0/znp_LP_CC1352P7_4.syscfg
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ const Power = scripting.addModule("/ti/drivers/Power");
const RF = scripting.addModule("/ti/drivers/RF");
const SHA2 = scripting.addModule("/ti/drivers/SHA2");
const SHA21 = SHA2.addInstance();
const SPI = scripting.addModule("/ti/drivers/SPI", {}, false);
const SPI1 = SPI.addInstance();
const TRNG = scripting.addModule("/ti/drivers/TRNG");
const TRNG1 = TRNG.addInstance();
const Button = scripting.addModule("/ti/drivers/apps/Button");
Expand Down Expand Up @@ -69,9 +71,12 @@ CCFG.ccfgTemplate.$name = "ti_devices_CCFG_CCFGCC26XXTemplate0";

rfdesign.rfDesign = "LP_CC1352P7-4";

Display1.$hardware = system.deviceData.board.components.XDS110UART;
Display1.$name = "CONFIG_DISPLAY";
Display1.uart.$name = "CONFIG_DISPLAY_UART";
Display1.$hardware = system.deviceData.board.components.XDS110UART;
Display1.$name = "CONFIG_DISPLAY";
Display1.uart.$name = "CONFIG_DISPLAY_UART";
Display1.uart.uart.$assign = "UART0";
Display1.uart.uart.txPin.$assign = "boosterpack.4";
Display1.uart.uart.rxPin.$assign = "boosterpack.3";

AESCBC1.$name = "CONFIG_AESCBC_0";

Expand All @@ -97,43 +102,55 @@ NVS2.externalFlash.$name = "ti_drivers_nvs_NVSSPI25X0";
NVS2.externalFlash.regionSize = 0x256000;
NVS2.externalFlash.verifyBufferSize = 64;

RF.$hardware = system.deviceData.board.components["SKY13317-373LF"];
RF.$hardware = system.deviceData.board.components["SKY13317-373LF"];
RF.rfAntennaPin0.$assign = "DIO_28";
RF.rfAntennaPin1.$assign = "DIO_29";
RF.rfAntennaPin2.$assign = "DIO_30";

SHA21.$name = "CONFIG_SHA2_0";

TRNG1.$name = "CONFIG_TRNG_0";

Button1.$name = "CONFIG_BTN_LEFT";
Button1.$hardware = system.deviceData.board.components["BTN-1"];
Button1.gpioPin.$name = "CONFIG_GPIO_BTN1";
Button1.gpioPin.pull = "Pull Up";
Button1.$name = "CONFIG_BTN_LEFT";
Button1.$hardware = system.deviceData.board.components["BTN-1"];
Button1.gpioPin.$name = "CONFIG_GPIO_BTN1";
Button1.gpioPin.pull = "Pull Up";
Button1.button.$assign = "boosterpack.13";

Button2.$name = "CONFIG_BTN_RIGHT";
Button2.$hardware = system.deviceData.board.components["BTN-2"];
Button2.gpioPin.$name = "CONFIG_GPIO_BTN2";
Button2.gpioPin.pull = "Pull Up";
Button2.$name = "CONFIG_BTN_RIGHT";
Button2.$hardware = system.deviceData.board.components["BTN-2"];
Button2.gpioPin.$name = "CONFIG_GPIO_BTN2";
Button2.gpioPin.pull = "Pull Up";
Button2.button.$assign = "boosterpack.8";

LED1.$name = "CONFIG_LED_RED";
LED1.$hardware = system.deviceData.board.components.LED_RED;
LED1.gpioPin.$name = "CONFIG_GPIO_RLED";
LED1.$name = "CONFIG_LED_RED";
LED1.$hardware = system.deviceData.board.components.LED_RED;
LED1.ledPin.$assign = "boosterpack.39";
LED1.gpioPin.$name = "CONFIG_GPIO_RLED";

LED2.$name = "CONFIG_LED_GREEN";
LED2.$hardware = system.deviceData.board.components.LED_GREEN;
LED2.gpioPin.$name = "CONFIG_GPIO_GLED";
LED2.$name = "CONFIG_LED_GREEN";
LED2.$hardware = system.deviceData.board.components.LED_GREEN;
LED2.ledPin.$assign = "boosterpack.40";
LED2.gpioPin.$name = "CONFIG_GPIO_GLED";

const NVSSPI25XDevice = scripting.addModule("/ti/drivers/nvs/NVSSPI25XDevice", {}, false);
const NVSSPI25XDevice1 = NVSSPI25XDevice.addInstance({}, false);
NVSSPI25XDevice1.$name = "CONFIG_NVS_SPI_0";
NVS2.externalFlash.spiFlashDevice = NVSSPI25XDevice1;
NVSSPI25XDevice1.chipSelect.$assign = "boosterpack.38";
NVSSPI25XDevice1.chipSelectPinInstance.$name = "CONFIG_GPIO_0";

const SPI = scripting.addModule("/ti/drivers/SPI", {}, false);
const SPI1 = SPI.addInstance({}, false);
SPI1.$name = "CONFIG_SPI_0";
NVSSPI25XDevice1.sharedSpiInstance = SPI1;
SPI1.sclkPinInstance.$name = "CONFIG_PIN_SPI_SCLK";
SPI1.pociPinInstance.$name = "CONFIG_PIN_SPI_MISO";
SPI1.picoPinInstance.$name = "CONFIG_PIN_SPI_MOSI";
SPI1.spi.$assign = "SSI0";
SPI1.spi.sclkPin.$assign = "boosterpack.7";
SPI1.spi.pociPin.$assign = "boosterpack.14";
SPI1.spi.picoPin.$assign = "boosterpack.15";
SPI1.spi.dmaRxChannel.$assign = "DMA_CH3";
SPI1.spi.dmaTxChannel.$assign = "DMA_CH4";

BIOS.assertsEnabled = false;
BIOS.rtsGateType = "BIOS_GateMutexPri";
Expand All @@ -153,7 +170,8 @@ HeapCallback.isBlockingInstFxn = "osalHeapIsBlockingFxn";
Clock.tickPeriod = 10;
Clock.swiPriority = 4;

const Timer = scripting.addModule("/ti/sysbios/family/arm/cc26xx/Timer", {}, false);
const Timer = scripting.addModule("/ti/sysbios/family/arm/cc26xx/Timer", {}, false);
Timer.rtc.$assign = "RTC0";

Idle1.$name = "powerIdle";
Idle1.idleFxn = "Power_idleFunc";
Expand Down Expand Up @@ -188,27 +206,3 @@ zstack.advanced.$name = "ti_zstack_advanced_zstack_advanc
zstack.advanced.routing.$name = "ti_zstack_advanced_zstack_routing0";
zstack.advanced.packetSending.$name = "ti_zstack_advanced_zstack_packet_sending0";
zstack.advanced.tableSize.$name = "ti_zstack_advanced_zstack_table_size0";

/**
* Pinmux solution for unlocked pins/peripherals. This ensures that minor changes to the automatic solver in a future
* version of the tool will not impact the pinmux you originally saw. These lines can be completely deleted in order to
* re-solve from scratch.
*/
Display1.uart.uart.$suggestSolution = "UART0";
Display1.uart.uart.txPin.$suggestSolution = "boosterpack.4";
Display1.uart.uart.rxPin.$suggestSolution = "boosterpack.3";
RF.rfAntennaPin0.$suggestSolution = "DIO_28";
RF.rfAntennaPin1.$suggestSolution = "DIO_29";
RF.rfAntennaPin2.$suggestSolution = "DIO_30";
Button1.button.$suggestSolution = "boosterpack.13";
Button2.button.$suggestSolution = "boosterpack.8";
LED1.ledPin.$suggestSolution = "boosterpack.39";
LED2.ledPin.$suggestSolution = "boosterpack.40";
NVSSPI25XDevice1.chipSelect.$suggestSolution = "boosterpack.38";
SPI1.spi.$suggestSolution = "SSI0";
SPI1.spi.sclkPin.$suggestSolution = "boosterpack.7";
SPI1.spi.pociPin.$suggestSolution = "boosterpack.14";
SPI1.spi.picoPin.$suggestSolution = "boosterpack.15";
SPI1.spi.dmaRxChannel.$suggestSolution = "DMA_CH3";
SPI1.spi.dmaTxChannel.$suggestSolution = "DMA_CH4";
Timer.rtc.$suggestSolution = "RTC0";
Loading

0 comments on commit cd34759

Please sign in to comment.