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

cross mob
EdHa_4455331
Level 5
Level 5
25 replies posted 25 sign-ins 10 replies posted

I am working on making a customized pair of Over The Air (OTA) Device Firmware Update (DFU) apps based on the CE216767 code example that will run on a CYBLE-41045-02 module . I was lurching along and making some progress until I added the post_build_core1.bat script. That script is giving me the following error:

C:\git\ADG01\Source Code\POC.cydsn>"C:\Program Files (x86)\Cypress\PDL\3.1.2""\tools\win\elf\cymcuelftool.exe" -S .\CortexM4\ARM_GCC_541\Debug\POC.elf CRC

Found section .cy_app_signature, attempting to sign application

.\CortexM4\ARM_GCC_541\Debug\POC.elf.tmp: ERROR: attempting to sign application, but one or both  of '__cy_app_verify_start' and '__cy_app_verify_length' symbols are missing

C

I have added the following lines in the main_cm4 file for the app1:

/* This is placed in the signature section to validate application */

CY_SECTION(".cy_app_signature") __USED const uint32_t cy_dfu_appSignature[1];

But I can't seem to find any other references to signatures in the CE216767 example and it looks like these values should be getting defined in dfu_mdk_symbols.c. But I can't figure out where/how the CE216767 example is hooking the pieces together to avoid the error I'm getting.

Anybody have any insights that might be helpful?

Thanks,

Ed H.

0 Likes
1 Solution
DheerajK_81
Moderator
Moderator
Moderator
First comment on KBA First comment on blog 5 questions asked

I ran the code example targeting CYBLE-41045-02 module. I was able to compile and sign the application successfully using the post_build_core1.bat script.

Here's the entire post-build command:

pastedImage_0.png

Did you modify the linker scripts? Please check if you have the following lines in the dfu_cm4.ld file:

__cy_boot_signature_size = 4;

/* DFU SDK specific */

/* CyMCUElfTool uses these ELF symbols to generate an application signature */

__cy_app_verify_start  = ORIGIN(flash_core0);

__cy_app_verify_length = LENGTH(flash_core0) + LENGTH(flash) - __cy_boot_signature_size;

Regards,

Dheeraj

View solution in original post

0 Likes
3 Replies
DheerajK_81
Moderator
Moderator
Moderator
First comment on KBA First comment on blog 5 questions asked

I ran the code example targeting CYBLE-41045-02 module. I was able to compile and sign the application successfully using the post_build_core1.bat script.

Here's the entire post-build command:

pastedImage_0.png

Did you modify the linker scripts? Please check if you have the following lines in the dfu_cm4.ld file:

__cy_boot_signature_size = 4;

/* DFU SDK specific */

/* CyMCUElfTool uses these ELF symbols to generate an application signature */

__cy_app_verify_start  = ORIGIN(flash_core0);

__cy_app_verify_length = LENGTH(flash_core0) + LENGTH(flash) - __cy_boot_signature_size;

Regards,

Dheeraj

0 Likes

That fixed it, but now the root cause has me scratching my head. The auto generated dfu_cm4.ld for my app1 did NOT include these lines. To double check, I deleted the dfu_cm4.ld for my app1 and built everything again. Still missing the lines you suggested.

Now, these line ARE included in the auto generated dfu_cm4.ld for my app0. I am thinking that the probable reason for the difference is that the DFU build settings for app0 are Core, App Type, and Communication BLE, while for app1 the DFU build setting are just Core.

But I could be wrong about that.

Ed H.

0 Likes

Hello Ed,

One thing I noticed from the error log you mentioned is the PDL version 3.1.2 being used. The code example CE216767 was developed on PDL 3.1.0. When you opened this project in PSoC Creator, I think you either updated the PDL to use 3.1.2 version or you didn't have the 3.1.0 version, so it picked the 3.1.2 release which you have.

In either of these scenarios, when you build your project with the new PDL specified, you should have seen a prompt like this:

pastedImage_0.png

If you selected all the files here to be replaced, you might lose the configurations which come with the Code Example and hence the error.

Regards,

Dheeraj

0 Likes