13#if (BOOT_BACKDOOR_ENTRY_TIMEOUT_MS == 0)
22#define RS232_CTO_RX_PACKET_TIMEOUT_MS (100u)
43 chnWriteTimeout(&
SDU1, data, len, TIME_INFINITE);
47#if defined(OPEN_BLT_TEST_COMMAND)
49static_assert(BOOT_COM_RS232_RX_MAX_DATA <
'z');
50 if (firstByte ==
'z') {
51 const char * bltTest =
"openblt\n";
52 chnWriteTimeout(&
SDU1, (
const uint8_t*)bltTest,
sizeof(bltTest), TIME_INFINITE);
66 static blt_int8u xcpCtoReqPacket[BOOT_COM_RS232_RX_MAX_DATA+1];
68 static blt_bool xcpCtoRxInProgress = BLT_FALSE;
72 if (xcpCtoRxInProgress == BLT_FALSE)
77 if ( (xcpCtoReqPacket[0] > 0) &&
78 (xcpCtoReqPacket[0] <= BOOT_COM_RS232_RX_MAX_DATA) )
85 xcpCtoRxInProgress = BLT_TRUE;
100 if (xcpCtoRxLength == xcpCtoReqPacket[0])
105 xcpCtoRxInProgress = BLT_FALSE;
107 *len = xcpCtoRxLength;
115 if (
TimerGet() > (xcpCtoRxStartTime + RS232_CTO_RX_PACKET_TIMEOUT_MS))
120 xcpCtoRxInProgress = BLT_FALSE;
134 auto bytesRead = chnReadTimeout(&
SDU1, data, 1, TIME_IMMEDIATE);
136 return bytesRead == 0 ? BLT_FALSE : BLT_TRUE;
141 chnWriteTimeout(&
SDU1, &data, 1, TIME_INFINITE);
bool is_usb_serial_ready()
void usb_serial_start(void)
Main function of PDL.
blt_bool NvmVerifyChecksum(void)
Verifies the checksum, which indicates that a valid user program is present and can be started.
void CpuMemCopy(blt_addr dest, blt_addr src, blt_int16u len)
blt_bool stayInBootloader
blt_bool Rs232ReceivePacket(blt_int8u *data, blt_int8u *len)
Receives a communication interface packet if one is present.
void Rs232TransmitPacket(blt_int8u *data, blt_int8u len)
Transmits a packet formatted for the communication interface.
PUBLIC_API_WEAK void openBltUnexpectedByte(blt_int8u firstByte)
static blt_bool Rs232ReceiveByte(blt_int8u *data)
static void Rs232TransmitByte(blt_int8u data)