• Join
  • Sign In with my.TI Login
Texas Instruments
  • Products
  • Applications
  • Tools & Software
  • Support & Community
  • Sample & Buy
  • About TI
Sample & Purchase Cart Sample & Purchase Cart
  • Search
  • Advanced
TI E2E™ Community
  • Support Forums
  • Blogs
  • Groups
  • Videos
  • 简体中文
  • More ...
TI Home » TI E2E Community » Support Forums » Low Power RF & Wireless Connectivity » Low Power RF Bluetooth® Low Energy & ANT Forum » Anyone see this linker error when attempting OAD in BLE stack v1.3?
Share
Low Power RF & Wireless Connectivity
  • Forums
  • Announcements
  • Files
  • E2E Wiki
Options
  • Subscribe via RSS

Anyone see this linker error when attempting OAD in BLE stack v1.3?

Anyone see this linker error when attempting OAD in BLE stack v1.3?

This question is answered
Peter Skinner
Posted by Peter Skinner
on Jan 02 2013 17:29 PM
Prodigy150 points

Hello,

I'm trying out OAD on the cc254x.  I've added FEATURE_OAD to the preprocessor defines.

I've also added /profiles/OAD to the library search path.

When building my app or the sensortag app, I see this error:

Linking

Fatal Error[e72]: Segment IMAGE_HEADER must be defined in a segment definition option (-Z, -b or -P)

Error while running Linker.

Did I miss a step?  I'm not sure where IMAGE_HEADER should be defined.

Is there a reference guide to OAD showing how to build for normal flash programming (with OAD enabled), and how to build an image for loading in over the air?

Thanks!

peter

Report Abuse
  • Reply
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
All Replies
  • Aslak N.
    Posted by Aslak N.
    on Jan 03 2013 02:19 AM
    Verified Answer
    Verified by Peter Skinner
    Expert5320 points

    Hi Peter,

    There are some steps you are missing. There should be documentation somewhere, I can't find it personally right now.

    However, open up the SensorTag project or SimpleBLEPeripheral project, and select the OAD- build configurations from the dropdown menu at the top of the Workspace pane at the left of the IAR IDE.

    You will then notice some changes..
    Extra preprocessor defines:
    FEATURE_OAD_BIM
    HAL_IMAGE_A
    FEATURE_OAD
    OAD_KEEP_NV_PAGES

     $PROJ_DIR$\..\..\Profiles\Oad added to include path.

    "$PROJ_DIR$\..\..\common\cc2540\cc254x_ubl_pp.bat" "$PROJ_DIR$" "ProdUBL" "$PROJ_DIR$\CC2541DK-Sensor-OAD-ImgA\Exe\SensorTag" added as post-build action. This creates the .bin file used for oad transfer

    $PROJ_DIR$\..\..\common\cc2540\cc254x_f256_imgA.xcl selected as linker file.

    This is true for Img A. There's also Img B, which is placed at another place in flash. The flash is split in three between BIM, ImgA and ImgB.

    To do OAD, you first need
    1) BIM programmed to the device
    2) ImgA programmed to the device using either IAR or Flash Programmer, where you make sure you _DON'T_ erase the flash before programming. This would erase BIM
    3) ImgB .bin file to program OAD. Next time you will need to program ImgA again and so forth.

    To get you started, find CC2541DK_BIM_SensorTagOadImgA.hex in Accessories/Hexfiles under the stack install directory, which is 1 and 2 rolled into one that you can program with SmartRF Flash programmer.

    Best regards,
    Aslak 

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Aslak N.
    Posted by Aslak N.
    on Jan 03 2013 02:24 AM
    Expert5320 points

    I forgot to mention that the linker file is where your missing segment is defined.

    Also, in the linker extra output the OAD builds output a .sim file for conversion to .bin. You can also change the normal output to "SensorTag.hex" and format Other->Intel-extended, for programming via flash programmer.

    Aslak

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Peter Skinner
    Posted by Peter Skinner
    on Jan 03 2013 17:01 PM
    Prodigy150 points

    Aslak,

    Thank you very much for the full explanation.  I have OAD running and tested using the TI iPhone app.  It seems to work well.

    I do have two followup questions.

    1) Does the OAD service indicate which location it is running from (A or B)?  The iPhone app tells you if you try to update using the wrong side, but the source isn't available yet, so I'm not sure how it can tell.

    2) What is the best way to combine the BIM (BIM_CC254xF256.hex) and Image A into single flashable hex file for production. Should cc254x_ubl_pp.bat be used for that? Are there recommended command line options for this operation?

    Thanks!

    Peter

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Jonathan Cohn
    Posted by Jonathan Cohn
    on Jan 03 2013 22:24 PM
    Expert1665 points

    Peter, can you explain which TI iphone app your using to test the OAD?  I didn't realize TI implemented the OAD updater into any of their apps yet

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Peter Skinner
    Posted by Peter Skinner
    on Jan 03 2013 22:34 PM
    Prodigy150 points

    Apologies for any confusion.  There was an update today for the TISensorTag app.  It now supports the OAD profile.  It's possible to upload your own .bin files to the app.  I used iExplorer to do this, and placed them in the com.ti.sc.bleweathersample/Documents folder.  I don't know if that's documented anywhere, but I was able to update the firmware of my own application this way.

    Peter

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Aslak N.
    Posted by Aslak N.
    on Jan 04 2013 02:26 AM
    Verified Answer
    Verified by Peter Skinner
    Expert5320 points

    Hi Peter,

    1) The source won't be available, but an example OAD app will be made available. If you use Device Monitor that you can find on the sensortag wiki you can enable notifications from OAD Image Notify and write first 00 and then 01 to the characteristic. If image A is running, you will get a sensible notification back after writing 00, otherwise from 01. The response is <image_id><image_len><user_id>, where the LSB of image ID tells you A(0) or B(1), and the 7 LSB are the version you have set.

    Currently the Sensortag App looks for 0x41 (A) or 0x42 (B) in the user id, which is a bug that will be fixed.

    2) For me it worked to simply concatenate the BIM hex file and the Image A hex file in a text editor or use the command line with type "bim.hex > superhex.hex" and "type imga.hex>>superhex.hex" in dos prompt. Otherwise you could potentially use flash programmer to read back the image that you have flashed to the device. Note that this last solution may be a bad idea, as calibration data could have been written to flash already by the device by the time you read back flash - data which may not be correct for another device.

    Best regards,
    Aslak

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Peter Skinner
    Posted by Peter Skinner
    on Jan 04 2013 19:02 PM
    Prodigy150 points

    Hi Aslak,

    Thanks so much.  That's just what I needed to know to keep things rolling.

    Cheers,

    Peter

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
TI E2E™ Community
  • Support Forums
  • Blogs
  • Videos
  • Groups
  • Site Support & Feedback
  • Settings
TI E2E™ Community Groups
  • TI University Program
  • Make the Switch
  • Microcontroller Projects
  • Motor Drive & Control
Other Communities
  • Deyisupport
  • Designsomething.org
  • beagleboard.org
  • TI on Element 14
  • TI on TechXchangeSM
Other Technical & Support Resources
  • WEBENCH® Design Center
  • Product Information Centers
  • Technical Documents
  • TI Design Network
  • TI Technical Articles
  • TI Training

All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.

Content on this site may contain or be subject to specific guidelines or limitations on use. All postings and use of the content on this site are subject to the Terms of Use of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Terms of Use of this site. TI, its suppliers and providers of content reserve the right to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and materials, its products, programs and services at any time or to move or discontinue any content, products, programs, or services without notice.

Follow Us Texas Instruments on Facebook Texas Instruments on Twitter Texas Instruments on LinkedIn Texas Instruments on Google+
TI Worldwide | Contact Us | my.TI Login | Site Map | Corporate Citizenship | mobile m.ti.com (Mobile Version)

TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs and
embedded processors, along with software, tools and the industry’s largest sales/support staff.

© Copyright 1995-2013 Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy Policy | Terms of Use