Bootloader - DFU with PSOC 61 (just CM4 core)

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

cross mob
MiBe_1782216
Level 1
Level 1

Hi,

I try to use the DFU-UART with a PSOC61 with one CM4 core.

But it did not work. Compiling and burning is working without error, but debugging is not possible.

I think it is because of the Linker File dfu_cm4.ld

Here are definition of Core0 and Core1, but the PSOC61 just have one core.

I use PSCO Creator 4.3 with PDL 3.1.2 (I tried with all available PDL Version from 3.0.1 on)

Is there a solution for this problem?

I was succesful with a PSOC63 already. So with a dual core it works without problem.

best regards,

Mike

0 Likes
1 Solution
VenkataD_41
Moderator
Moderator
Moderator
750 replies posted 500 replies posted 250 solutions authored

Hi Mike,

Compiling and burning is working without error, but debugging is not possible.

Are you able to Bootload the App_1 using Bootloader Host tool or DFU host tool? Are you facing any issues in this process?

For debugging, we recommend you to do following steps:

1. Add the following code in the App_1 project.

volatile uint8_t temp = 0;

while(temp == 0)

{

}

2. Once the App_1 is bootloaded, select App_1 project in PSoC Creator work space and then select Debug--> Attach to running target.

Once it is done, you should get stuck in the above while loop. From there you can change the value of temp variable in the watch variables window and then get over the while loop.

I think it is because of the Linker File dfu_cm4.ld

Please remove the core0 part of the linker script.

Please attach the truncated version of your project. We will check the firmware flow and linker scripts once.

Thanks

Ganesh

View solution in original post

0 Likes
2 Replies
VenkataD_41
Moderator
Moderator
Moderator
750 replies posted 500 replies posted 250 solutions authored

Hi Mike,

Compiling and burning is working without error, but debugging is not possible.

Are you able to Bootload the App_1 using Bootloader Host tool or DFU host tool? Are you facing any issues in this process?

For debugging, we recommend you to do following steps:

1. Add the following code in the App_1 project.

volatile uint8_t temp = 0;

while(temp == 0)

{

}

2. Once the App_1 is bootloaded, select App_1 project in PSoC Creator work space and then select Debug--> Attach to running target.

Once it is done, you should get stuck in the above while loop. From there you can change the value of temp variable in the watch variables window and then get over the while loop.

I think it is because of the Linker File dfu_cm4.ld

Please remove the core0 part of the linker script.

Please attach the truncated version of your project. We will check the firmware flow and linker scripts once.

Thanks

Ganesh

0 Likes

Hi Ganesh,

thank you for your response.

How can I truncate my project?

What I simply did was to load the example "CE213903 - PSoC 6 MCU Basic Device Firmware Update (DFU)"

change the device to my PSOC61xxxx.

Put in the correct PDL path with version 3.1.0.

generate application.

The program can be compiled. (UART_APP0..)  But if I program the PSOC61xxxx no LED is blinking. (I adapt the SW2 and LED Pins in the code and in the design)

If I debug the program it switches to some king of memory position 80100000 and nothing goes further on.

So I looked in the following files:

dfu_cm4.ld, dfu_cm4.scat,dfu_mdk_symbols.c,dfu_cm4.icf.

Here are definitions of memory addresses for core0 core1 app0 app1 ....

So, the PSOC61xxxx has just an CM4 core, but no CM0 core.

If I delete all entries of core0 it ends in error messages.

So is there an application note (walk through guide) to get the DFU running on a psoc61xxxx ?

thanks for your support

regards Mike

0 Likes