Part Number: MSP432P401R
Hi,
i have compiled the BSL Scripter myself and have it running on ARM architecture running Debian Linux.
So here is the output:
root@:/BSL_QT# ./BSL_QT MSP432/script_MSP432_uart.txt
---------------------------------------------------------
BSL Scripter 3.2.1
PC software for BSL programming
---------------------------------------------------------
Input file script is : /home/BSL_QT/MSP432/script_MSP432_uart.txt
//
//Script example MSP432 UART BSL
//Device : MSP432P401R
//Download blink application to
//MSP432 device through UART BSL
//
LOG
MODE P4xx UART 9600 /dev/ttymxc3
[ERROR_MESSAGE]Initialization of BSL P432 failed! Exit the scripter!
Do i have to flash the MSP432 with BSL configuration first?
I am using the UART BSL Ports P1.2 and P1.3 and they are working fine with my Linux system, since i use them on my application.
The error message comes from the class UartComm from the SourceCode:
void UartComm::transmitP4xxInitialization()
{
const uint8_t loopInitialization = 10;
bool initP432 = false;
uint8_t uartTxBuffer[1] = { 0xFF };
for (uint8_t i = 0; i < loopInitialization; i++)
{
ack = 0xFF;
boost::system::error_code ec;
boost::asio::write(port, boost::asio::buffer(uartTxBuffer, 1), ec);
if (ec)
{
throw std::runtime_error("Error from writing occurs...");
}
receiveBuffer(-1);
if (ack == 0x00)
{
initP432 = true;
break;
}
}
if (initP432 == false)
{
throw std::runtime_error("[ERROR_MESSAGE]Initialization of BSL P432 failed! Exit the scripter!"); <---------------------------Here it throws the message
}
else
{
std::cout << "Initialization of BSL P432 succeed!" << std::endl;
}
}
The ack is from the "BslResponseHandler" class and 0x00 means: static const uint8_t FLASH_ACK = 0x00;
So BSL Scripter doenst receive 0x00 back and that is causing the scripter to stop.
But why is the MSP432 not sending 0x00 back but an other value?
Obs: Also measured the RX and TX UART lines and the communication is running
Thanks,
Michael