PSoC Creator to Modus 2.0 migration

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

cross mob
user_1669321
Level 5
Level 5
100 replies posted 50 replies posted 25 replies posted

Hi,

I have started porting our PSoC Creator project to Modus Toolbox before starting our next phase of development. I have some questions about it.

1) After having done a bit of research, I found that the dual core debugging that was available on Modus 1.0 is not available in 1.1, and I can't find any references to that in the release notes of Modus 2.0. These threads here and here says that a decision on dual core within Modus should have been made by now. What is the status of this?

2) By looking at the "Find Me" example, I see references to CM0+ and CM4, so I think it's still possible to run both cores. Our project currently only runs on the CM0+, and we want to keep it that way for the first step of migration to validate that we get the same behavior as before. Is there an example on how to create a CM0+ specific application? Or a dual-core application in which we could just disable the CM4? As I understand it, the dual-core example CE216795 is only for Modus 1.0.

3) In PSoC Creator, the "Interrupts" tab of the cydwr allowed to select on which core an interrupt acted, and told if the interrupt was deepsleep capable or not. Is there an equivalent tab in Modus?

4) The "Use BLE low power mode" that was available in the BLE component of PSoC Creator seems to have disappeared in the Bluetooth Configurator of Modus. Is it still possible to run BLE along with deepsleep, provided there is an external watch crystal connected?

5) Our application currently compiles with a bootloader that sits in another project in the workspace. To achieve that in PSoC Creator, we were required to:

  1. Enable bootloader sdk in PDL parameters (build settings)
  2. Change the default linker files .ld to bootload_cm0p.ld and bootload_cm4.ld
  3. Call a batch file (post_build_core1.bat) in post-build that merges bootloader.elf, cm0.elf, and cm4.elf together using cymcuelftool.exe from PDL.

Is there such a procedure that has been done for Modus? I was unable to quickly find where to choose the linker scripts and where to add post-build instructions in Modus.

Thank you,

Fred

0 Likes
1 Solution
VaisakhK_66
Employee
Employee
10 replies posted 5 replies posted First question asked

Hello Fred!

For a step-by-step instruction on using the DFU in ModusToobox, please refer to the DFU guide here:

Cypress Device Firmware Update (DFU) Middleware Library 4.0: Cypress Device Firmware Update (DFU) Mi...

Also note that we will be coming up with DFU code examples in ModusToolbox 2.0 soon to help understand the DFU flow better.

Thanks,

Vaisakh

View solution in original post

4 Replies
markgsaunders
Employee
Employee
50 sign-ins 10 solutions authored 5 solutions authored

Hello!

I'll try to answer your dual core questions as best I can. However, I cannot answer the Bluetooth-specific issues ands so shall ask our engineering team to provide clarification on those.

1) Yes, we have temporarily disabled the dual core support in the tools. We feel that we need to provide more guidance on creating robust applications that are split across two cores on the same bus. With our next tools release, in Q1, we will re-enable dual core development and provide some good examples on safe, efficient operation.

2) The FindMe example illustrates the option of running the BLE controller on the CM0+ core. Sorry, but it is not a general method for creating dual-core applications. It simply offers the choice of where to run the lower part of the stack.

3) There is no equivalent of the Interrupts tab in ModusToolbox IDE. Handlers are installed manually using the Cy_SysInt_Init API.

Regards, Mark.

Thanks Mark!

For anyone wondering about my fifth question, you only need to add Cy_BLE_EnableLowPowerMode(); after Cy_BLE_Enable();

As per my bootloader question, I'm starting to get familiar with Modus and it looks like I could use the .ld linker scripts from Creator and use them for my target. Does the following scheme make sense?

  1. Have three projects in the workspace (CM0+, CM4, Bootloader running on CM4).
  2. Use the bootloader linker scripts for the corresponding projects (bootload_cm0p.ld with app_id=1, bootload_cm4.ld with app_id=1, bootload_cm4.ld with app_id=0 and the prebuilt CM0P_SLEEP image)
  3. Have a post-build instruction that merges .elf files using the elf merger.

How would this work for debugging, though? From looking at the debug configurations, it looks like I just need to point to the hex and elf files to use, so I should be able to point to the merged files. However, I'm unsure about how I can setup which processor to debug.

0 Likes
VaisakhK_66
Employee
Employee
10 replies posted 5 replies posted First question asked

Hello Fred!

For a step-by-step instruction on using the DFU in ModusToobox, please refer to the DFU guide here:

Cypress Device Firmware Update (DFU) Middleware Library 4.0: Cypress Device Firmware Update (DFU) Mi...

Also note that we will be coming up with DFU code examples in ModusToolbox 2.0 soon to help understand the DFU flow better.

Thanks,

Vaisakh

Thank you Vaisakh, I will check it out.

It looks like I need to drop my intent on using the CM0+ for now, as there seems to be no support for it.

0 Likes