BLE_PDL Component Dual core CM0+ Controller RAM Requirement

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

cross mob
CaKu_4284131
Level 5
Level 5
50 replies posted 25 replies posted 10 likes received

I'm using PSoC 63, running BLE dual core (Controller on CM0+, Host and Profiles on CM4). I don't use CM0+ for anything else -- the bulk of my application is running on CM4. I'm looking at the linker script cy8c6xx7_cm0plus.ld and I see:

ram (rwx) : ORIGIN = 0x08000000, LENGTH = 0x24000

which is more memory than the CM4 gets. From cy8c6xx7_cm4_dual.ld:

ram (rwx) : ORIGIN = 0x08024000, LENGTH = 0x23800

I have to wonder if the BLE Controller really needs all of that RAM. Could I move the line down to devote more RAM to CM4? Just how much RAM does the Controller on CM0+ need?

 

 

 

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

Hi,

The GCC-ARM comes with some tools to output the size of sections. You can refer to this link:
https://stackoverflow.com/questions/11720340/tool-to-analyze-size-of-elf-sections-and-symbol

You need to execute these commands on the ELF file of your application.

Thanks

Ganesh

View solution in original post

0 Likes
6 Replies
CaKu_4284131
Level 5
Level 5
50 replies posted 25 replies posted 10 likes received

Looking at my  .map file, I see

 

 .heap          0x08000850      0x400 .\CortexM0p\ARM_GCC_541\Debug\startup_psoc6_01_cm0plus.o
                0x08000c50                __HeapLimit = .

 

and 

 

 .stack         0x08000850     0x1000 .\CortexM0p\ARM_GCC_541\Debug\startup_psoc6_01_cm0plus.o
                0x08024000                __StackTop = (ORIGIN (ram) + LENGTH (ram))
                0x08023000                __StackLimit = (__StackTop - SIZEOF (.stack_dummy))

 

Does that mean that all the space between 0x08000c50 and 0x08023000,  (140,208 [0x223B0] bytes) is unused?

 

 

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

Hi, 

To answer your initial question: " This depends on whether LE 2M, DLE and Privacy features are used. Assuming that all of these features are used, the RAM required for cm0p controller can be easily determine using a PSoC Creator Project.

Once you build the project, the SRAM used variable will tell you for your application, what is the RAM requirement."
 
Thanks and regards
Ganesh
0 Likes

Thanks, but where can I find the SRAM used variable?

0 Likes
lock attach
Attachments are accessible only for community members.
VenkataD_41
Moderator
Moderator
Moderator
750 replies posted 500 replies posted 250 solutions authored

Hi,

When you build the PSoC Creator project, you can see the amount of memory consumed by the code as well as SRAM. Please find the attached image which shows you where you can find the code/flash consumed and sram.

Thanks

Ganesh

0 Likes

OK, but that's not very helpful for determining how much is used by CM0+ vs. CM4.

Thanks,

      Carl

 

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

Hi,

The GCC-ARM comes with some tools to output the size of sections. You can refer to this link:
https://stackoverflow.com/questions/11720340/tool-to-analyze-size-of-elf-sections-and-symbol

You need to execute these commands on the ELF file of your application.

Thanks

Ganesh

0 Likes