PSoC 4 BLE with Bootloader/Bootloadable unexpected cold boot behaviour | Cypress Semiconductor
PSoC 4 BLE with Bootloader/Bootloadable unexpected cold boot behaviour
Our company is already using the PSoC 4 BLE with bootloader and bootloadable application updatable using UART SCB, no issues works extremely well.
The attached PSoC 4 project is applicable for the below and runs on a kit-042 with the UART debug sent to a separate kit-044.
The project uses I2C for the bootloading process and using a UART for debug which has some unexpected behaviour only after a cold start.
After the project is programmed, no cold start, the operation is as expected, the bootloader then bootloadable are executed successfully.
Upon disconnecting the USB and board to board UART tx and rx lines from the kit-044 (these lines parasitically power the kit-042) then reconnecting, the code executes sending "Boot St" then the PSoC reboots. This operation occurs continuously. Cycling the power has no effect, however downloading the project to the kit-042 again fixes the issue until a cold start is performed once again.
/* Enable global interrupts. */
/* Delay is needed here for PsoC reboots*/
/* Start UART*/
To resolve the issue we have tried reading the UART status, waiting until the UART buffer is empty, not enabling global interrupts, delaying the watchdog etc.. without success. We did find that was adding a 1ms delay after the interrupt enable appears to resolve the issue for the hardware/software combination detailed above. That is, on any cold start the operation is the same as a warm start.
Does anyone have any thoughts on this cold start issue or see an obvious error we have overlooked?