You are here

Updated OTA External Memory bootloadable does not compile | Cypress Semiconductor

Updated OTA External Memory bootloadable does not compile

Summary: 8 Replies, Latest post by michael couture on 30 Sep 2016 11:38 AM PDT
Verified Answers: 2
Last post
Log in to post new comments.
michael couture's picture
User
4 posts

The started with the BLE OTA External Memory bootloader/Bootloadable example project and it ran just fine on the pioneer board.

When I updated the components ane re-compiled,  the bootloadable  output indicates 4 undefined references.

The bootloader/bootloadable 1.50 document (page 16) indicates added defines but does not indicate where and what

if any/ changes are required for the base example code.

Any assistance would be appriciated.

user_242978793's picture
User
1101 posts

You can't use the booloader you have to use the CYSmart 1.2 application to program the Dongle. 

user_242978793's picture
User
1101 posts

Please post your program so we can check it.

michael couture's picture
User
4 posts

Code attached is from the forum. I took this code and updated components, then compiled. Bootloader compiled clean.

Bootloadable compiles fails on 'implicit declarations' and undefined references.

CyBtldrCommStart, CyBtldrCommStop, CyBtldrCommRead, CyBtldrCommWrite.

Page 16 of bootloader and bootladable V1.50 pdf lists these functions indicating defines are neccessary.

Page 40 of the SCB_P4_v3_20.pdf indicates Mode must be Slave or Muli-Master-Slave also identifing fuctions as described in the bootloader document.

Scanning the files, the functions are defined but compile directives are preventing them from exposure. 

It appears it is a configuration issue

user_242978793's picture
User
1101 posts

I fixed your program .

> Build bootloader project -

> set the bootloadable project active -

> enter the path of bootloader project files in the bootloadble component of bootloadable project -

> build and program bootloadable project -

> Open cysmart 1.2 (make sure the security settings are same as your bootloadable project. Open 'configure master settings ' of cysmart window -

> see security parameters-

> see it is unauthenticated with encryption (as in your bootloadable project) ) -

> Now press sw2 on the pioneer kit to enter into bootloader mode. Now red LED will be blinking on the kit. -

> Now start scan in Cysmart -

> Device info example -

> click on it and press upgrade firmware button -

> select the .cyacd file and see whether OTA is failing. At my end it was successful.
I am running PSoC Creator  3.3 CP3 (3.3.0.9604)

user_242978793's picture
User
1101 posts

Don't use the bootloader host it will not work with this. Use CySmart 1.2 only. 

These commands have changed in the 4.2 component

CyBtldrCommStart in now CyBLE_CyBtldrCommStart

CyBtldrCommStop is now CyBLE_CyBtldrCommStop

CyBtldrCommRead is now CyBLE_CyBtldrCommRead

CyBtldrCommWrite is  now CyBLE_CyBtldrCommWrite
Always check the API for updates when this kind of problem shows up.

michael couture's picture
User
4 posts

Thank you, 

 I tested the update and its works as expected.   Could you elaborate on what the correction was ?

I am running PSoC Creator  3.3 CP3 (3.3.0.9604)

user_242978793's picture
User
1101 posts

As I stated the issue was the change in the API for the Ble component they changed some of the commands .  There may be others so I would review it if you need to use other commands.

michael couture's picture
User
4 posts

Thanks again.

One last question:  Is the selection of  the prefex 'CyBLE_' , refering to BLE, indicate the OTA bootloader source option ?

Other prefixes would indicate other bootloader sources ?

Log in to post new comments.