This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

cc2541 Image A and B difference by what?

Other Parts Discussed in Thread: CC2541

Drar TI,

I see OAD spec,I want know more detail image A and B by what?

Because still donot understand.

Thanks

Ben

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

8.3.3 Images A and B
In order for one image (i.e. A) to OAD the other (i.e. B), the first image (A) must contain the OAD Target profile. These
images will rely on a special linker file that properly reserves the code areas for each image and which links the
downloaded code to run in the respective image area. Such linking includes placing the INTVEC table and CRC & CRC-
shadow at the locations expected by the BIM. Note that these locations can never be changed via an OAD image update,
since the BIM cannot be modified in a fail-safe manner after it is directly programmed with a tool.

------------------------------------------------------------------------------------------------------------------------------------------------------------------------
8.3.4 Image-A Concept
Image-A has a dedicated linker file which is necessarily different from the one for Image-B since this code will be
downloaded (or physically programmed) and run in-place. Image-A will require some amount of non-banked code space,
no matter how reduced of a stack or code base it is finally running. So Image-A has been arbitrarily selected to be the
code image that has a non-contiguous address space which accommodates a contiguous Image-B in between its non-
banked and banked code spaces (see Image 1). For this reason, Image-A should be the image made to only run the OAD
Target Profile, if the design choice is made to have dissimilar code in Image-A and Image-B in order to maximize the
space available for the Image-B which runs the code that implements the final BLE application. In such a scenario, the
super efficient, and therefore very valuable, non-banked code space allocated for Image-A should be reduced to the
fewest pages possible, since Image-A only runs on the rare occasion of an OAD and Image-B effectively runs for the life of
the product.


8.3.5 Image-B Concept
Image-B has been arbitrarily picked to be optimized to implement the final BLE application and may or may not have to
implement the OAD Target Profile. As mentioned above, this image is linked to run in a contiguous address space that lies
in between the two parts of the Image-A. If the probability of Image-B running is about as likely as that of Image-A running,
then the non-banked code should be evenly split between the two (less, of course, the page 0 used by the BIM) – and this
is the default setting for the dedicated linker files for the two images. As an ending exercise in this document, the default
linker files will be changed to give more code space to Image-B by taking away an equal amount of code space from
Image-A
------------------------------------------------------------------------------------------------------------------------------------------------------------------------

  • Hi Ben,

    If you want to know more about the OAD regarding specific details, you will need to provide the proper questions. I don't know what you are asking for. To me, the descriptions you post, are straight forward.

    It might help to look at the sensor tag project and the different builds for image A and Image B. That might give you an indication of the differences for your analyse.

    Best Regards 

    Joakim

  • Dear Joakim,

    I will really appreciate your kindly help. Thanks

    If imgA is for increase the RF ,ImagB is for decrease battery power.

    That's for example.I mean cc2541 sensortag build A and B by what?

    Do you understand?

    Sorry for my poor english, I'm Japanese......welcome to japan.

    Thanks

    Ben 

  • Hi Ben,

    Please give more information than 'do not understand' when posting.

    To summarize OAD, it works by having two monolithic run-time images on the device, which have the capability to update the other image and switch to this new image after a reset.

    BR,
    Aslak

  • Hi Ben,

    The main reason for the Image A and Image B architecture is to be able to run one image while downloading to the other. Example. We sell sensor tag with Image A residing on it. When we are releasing a new BL SDK or when we want new features on the sensor tag, it's possible to update the sensor tag with new firmware. On the first update (on a newly purchased SensorTag) you'd have to use Image B since the sensortag runs on Image A. The second update, you'd have to download an Image A since you are then running on Image B.

    Now. Imaging someone missed the first update. That person can't download Image A since it's already running Image A. Therefore, that person might download Image B instead.

    So. Every software update comes with A and B images because the SensorTag could be running on Image A or B.

    I don't know if I understood your question correctly or if I simply made things worse now, but there ya go. 

  • Dear Joakim


    Thanks a lot. The info you offer is very helpful.

    really appreciate your kindly help.

    BR,

    Ben