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.

BLE Large Image OAD-ImageB xcl file

Hi,

 The BLE Large Image OAD example on http://processors.wiki.ti.com/index.php/BLE_Large_Image_OAD, it‘s hard to understand some content in the .xcl file,  for exampe:

-D_CODE_BEG=0x4030 // Last 10 pages of Bank 0.
-D_CODE_END=0x7FFF

-Z(CODE)CHECKSUM=0x3000-0x3001
-Z(CODE)IMAGE_HEADER=0x3002-0x300F
-Z(CODE)AES_HEADER=0x3010-0x302F

The code begin at 0x4030 , but the CHECKSUM start at 0x3000, why 0x3000,not 0x4000?

Best Regards,
zchong

  • Hi,

    Help!Who can tell me why?

    Thanks a lot!

  • I'm not sure either. It seems like a bug to me. Would appreciate an official TI statement on this one. 

  • See also, this thread that asks the same question.  http://e2e.ti.com/support/wireless_connectivity/f/538/p/300054/1046745.aspx#1046745

    Note: I was able to flash my Img B onto the device without a problem. I'm concerned though that this may fiddle with the memory that actually belongs to Img A and cause it to destabilize, which would be disastrous in the field. 

  • Okay, I have tried again with a "fixed" xcl linker file (see diff below), and the resulting .bin files are identical to that with the original xcl from the large oad sample project from the wiki (bit by bit). 

    I assume that because no code bank with adress 0x3030 is going to be present in the final image, that the linker somehow simply "prepends" the IMAGE_HEADER to the bin file, and the wrong placement in the original file is thus irellevant.

    @@ -128,9 +128,9 @@
     // ROM memory
     //
     
    --Z(CODE)CHECKSUM=0x3000-0x3001
    --Z(CODE)IMAGE_HEADER=0x3002-0x300F
    --Z(CODE)AES_HEADER=0x3010-0x302F
    +-Z(CODE)CHECKSUM=0x4000-0x4001
    +-Z(CODE)IMAGE_HEADER=0x4002-0x400F
    +-Z(CODE)AES_HEADER=0x4010-0x402F
     
     -Z(CODE)INTVEC=_CODE_BEG-_CODE_END
     -Z(CODE)BIT_ID,BDATA_ID,DATA_ID,IDATA_ID,IXDATA_ID,PDATA_ID,XDATA_ID=_CODE_BEG-_CODE_END
    @@ -205,7 +205,7 @@
     //
     // Skip CRC & SHDW when calculating the CRC.
     //
    --J2,crc=8005,=3004-_BANK5_END
    +-J2,crc=8005,=4004-_BANK5_END
     
     //
     ////////////////////////////////////////////////////////////////////////////////