"BLE Shared Memory Bootloadable" compilation fails

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

cross mob
Anonymous
Not applicable

Hi,

   

 

   

I get "Build error: cannot open linker script file BootloaderSymbolsGcc.ld: No such file or directory" when trying to compile example shared memory bootloadable project.

   

The file is included from "cm0gcc.ld" and I can't find it on my disks. Google gives no result.

   

Is someone else facing the same problem as me ?

   

 

   

Regards,

   

 

   

cranor

0 Likes
8 Replies
Anonymous
Not applicable

Before you can build the Bootloadable project, you would need to generate some linker scripts by running the mk.bat script, which is available as part of the Shared memory Bootloader project.

   

Read the datasheet for the example project to get more details. You would need to configure mk.bat file for the appropriate locations of the projects and then run it - that would generate the necessary scripts for the Bootloadable.

   

Cheers,

   

Uday

0 Likes
Anonymous
Not applicable

Thanks for your fast reply.

   

Effectively, I missed the pdf.

   

It works nice now, thanks 😉

0 Likes
Panometric
Level 5
Level 5
100 sign-ins 100 replies posted 10 solutions authored

It does not work out of the box with defaults. For PSOC Creator 4.2 here's what you need to change:

Add 01 to directory names.

Change version to 4.2 which will help find the executable.

set LOADER_PRJ_NAME=BLE_OTA_FixedStack_Bootloader01

set LOADABLE_PRJ_NAME=BLE_OTA_FixedStack_Bootloadable01

set CREATOR_VERSION=4.2

Given how the rest of the platform works, this should really be easier...

0 Likes

Hello Mike,

after adjusting the paths there rising new errors. They are not explain that much. Your help is appreciated.

unnamed.png

Thank you very much,

Daniel

0 Likes

Daniel, You are over my knowledge now. I'm guessing that since it complains about overlap you have not set the dependencies in the Bootloadable component or copied the linker script. Double check those. Perhaps someone from Cypress knows better.

0 Likes
Anonymous
Not applicable

I believe the errors shown in the screen shot are what you get when the compiled application is bigger than the available flash.

AKA, the application is too big.

0 Likes

The total ROM size defined in bootloadable project linker file is too small. There is no extra space for application to reside after bootloader is settled.

cm0gcc.ld ->

MEMORY

{

    rom (rx) : ORIGIN = 0x0, LENGTH = 262144

    ram (rwx) : ORIGIN = 0x20000000, LENGTH = 16384

}

Just enlarge LENGTH of rom from 131072 bytes to e.g. 262144.

0 Likes
Anonymous
Not applicable

If this problem persists even when the BootloaderSymbolsGcc.ld linker script has been generated from the mk.bat file, make sure that the parent directory of the linker script has been added in Build Settings -> Linker -> Additional Library Directories.

Without that path, the linker cannot find the additional linker script event though it's in the same directory as the cm0gcc.ld script.

I ran into this when trying to build a bootloadable project from scratch.

0 Likes