Working Bootloader Example Project needed for Cy8KIT-049-42xx (UART bootloader)

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
AnHo_1298756
Level 1
Level 1
First like given

Hello!

I'm new to my PSOC Creator 4.3 and my older DevBoard Cy8KIT-049-42xx  and have to find that there is no working example with bootloader.

When I open the blinking LED bootable Example, a lot of errors occur while compiling.

I tried to work through the tutorials, but all refer to PSOC Creator 3.x, which I do not have. Please hint on me if you found one using Creator 4.3 or 4.x.

Since I have the PSOC MiniProg 3, I can flash the Kit OK, but I have the problem, that the PopUp Window of the Programmer is really lagging like hell, sometimes letting me wait a minute before I can continue in the dialog. The PC is quite unused regarding CPU etc., and a quite capable machine. Is PSOC Creator 4 incompatible with MiniProg3?

In the end the project shall be updateable without the Programmer. So the preferred way to go has to be the bootloader.

I get the feeling that it is very importand in which order one places parts or does things...

Thank you so much for your help!

Andi

---

Details what I tried:

Using PSOC Creator 4.3, I cannot recognize or find essential settings any more. E.g. the setting when right-clicking on Project 'Bootloadable blinking LED' -> Build Settings -> Code generation : there according to docs and tutorial videos, I should set "bootloadable" as compile option. But it is not there!

So my questsion for this board or similar UART based bootloaders is:

has anyone the ability to fix the errors that are obviously there in the examples in a short time? Please?

(Like in the bootloadable, the block bootloadable is not there, but rather a second bootloader, which imho is an error.

Or in the bootloader project, in the bootloader, there is "Communication component" set to "Custom interface", but I do not know what to do with that. Where can I tell it, that this "custom interface" should point to or use UART, and why is uart there when bootloader doesn't use it?

I tried to do it from scratch,  as it seemed easy enough,  even found some video explaining it, but for creator 3.x, and failed.

"Generated_Source\PSoC4/UART_BOOT.h:164:41: error: conflicting types for 'UART_UartCyBtldrCommWrite'").

I only got the error after assigning the pin for the Switch, for entering boot mode, wich I forgot in the first run. Without the switch it compiled fine. Perhaps it optimized the whole thing out, since I never could enter boot mode without it.

 

I Attach the "minimal archive" of the workspace. But 2 files are missing. The Creator could not archive its own files.

"Warning: prj.M0169: The archive succeeded with missing files. The following files were not found on disk and therefore could not be included "

I now did some minor changes to the original example, like deleting the bootloader in the Bootloadable_Blinking_LED project and thoroughly re-asserting the hex file in the bootloadable I dropped.

And it compiled OK, with Bootloader set to Communication Component: "Custom Interface". When  I set it to the logical "UART_1" that pops up after placing it, I get errors:

167        #define UART_1_CyBtldrCommWrite   UART_1_UartCyBtldrCommWrite.

Error: Generated_Source\PSoC4/UART_1_BOOT.h:164:43: error: conflicting types for 'UART_1_UartCyBtldrCommWrite'

But the bootloader won't work. At least it doesn't blink and says error.

12:50:05 AM - program Started

12:50:06 AM - Timeout für den Vorgang wurde überschritten.

12:50:06 AM - Communication port reported error 'Unable to read data from the target device'.

12:50:06 AM - program failed in 1104 ms.

0 Likes
1 Reply
AnHo_1298756
Level 1
Level 1
First like given

Hello!

Since I'm new, I did not do it properly, and I can not edit my post. So...

In the bootloader of the project in the message above I did not include code in main.c, and somehow the examples did some uart.c I did not care to look at, sorry - Somehow I thought it would be enough to place the bootloader in the TopDesign.

I discarded the trial and error for this and started new.

I found some example code here:

https://www.cypress.com/documentation/application-notes/an68272-psoc-3-psoc-4-psoc-5lp-and-psoc-anal...

https://www.cypress.com/documentation/code-examples/ce221653-psoc-4-bootloader-and-bootloadable

and downloaded the ZIP.

https://www.cypress.com/file/407086/download

Here I exchanged I2C with uart. Here this compiles fine. I used 57kBaud.

Compiled and programmed with MiniProg.

Led doesn't show, but I do not know how to inverse it, since in my board, the only (blue) led is to ground.

In the Blinky example, Bootloadable1, I adjusted the LED Pin to the only one on the board, P1[6], in the first example program and tried to download it with the bootloader, but though the BootLoader seems to be running, it doesn't work, and it can not erase or program.

I observe the Win(10) sound from re-connecting usb devices, though, every some minutes.

10:34:15 AM - program Started

10:34:16 AM - The flash row is not valid for the selected array.

10:34:16 AM - program failed in 149 ms

and similar for erase test:

10:34:53 AM - erase Started

10:34:54 AM - The flash row is not valid for the selected array.

10:34:54 AM - erase failed in 151 ms. (Varies, up to 1103ms;)

)

I observed the hex file is 71kB, the elf 316kB, but the cyacd is only 5kB. Can this be? I only point the Bootloader Host to the cyacd.

Thanks!

Andi

0 Likes