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.

CCS/CC2640R2F: How to explain some sentances in the code

Part Number: CC2640R2F

Tool/software: Code Composer Studio

Hi,

What is the meaning of the following codes about :

#pragma location=".cert_element"
const certElement_t _secureCertElement @ ".cert_element" ={ }  
 

 

#pragma location=".cert_element"
const certElement_t _secureCertElement @ ".cert_element" =
#endif
{
  .version    = SECURE_SIGN_TYPE,
  .len        = SECURE_CERT_LENGTH,
  .options    = SECURE_CERT_OPTIONS,
  .signerInfo = {0xb0,0x17,0x7d,0x51,0x1d,0xec,0x10,0x8b},
  .certPayload.eccKey.pubKeyX = {0xd8,0x51,0xbc,0xa2,0xed,0x3d,0x9e,0x19,0xb7,0x33,0xa5,0x2f,0x33,0xda,0x05,0x40,0x4d,0x13,0x76,0x50,0x3d,0x88,0xdf,0x5c,0xd0,0xe2,0xf2,0x58,0x30,0x53,0xc4,0x2a},
  .certPayload.eccKey.pubKeyY = {0xb9,0x2a,0xbe,0xef,0x66,0x5f,0xec,0xcf,0x56,0x16,0xcc,0x36,0xef,0x2d,0xc9,0x5e,0x46,0x2b,0x7c,0x3b,0x09,0xc1,0x99,0x56,0xd9,0xaf,0x95,0x81,0x63,0x23,0x7b,0xe7}
 };

In addtion,in the below codes,

If the address 0x20000400 has not been initialized

So does the sentence"__no_init uint32_t _bim_var @ BIM_VAR_ADDR "mean that the variable _bim_var is written at the address 0x20000400?

If the address 0x20000400 saved a data such as 0x88 before this sentence, could it be understood as _bim_var=0x88?



#define BIM_VAR_ADDR 0x20000400 #ifdef __TI_COMPILER_VERSION__ #pragma location = BIM_VAR_ADDR #pragma NOINIT(_bim_var) uint32_t _bim_var; #elif __IAR_SYSTEMS_ICC__ __no_init uint32_t _bim_var @ BIM_VAR_ADDR; #endif

 

Regards,

Kevin

 

  • 1. The following syntax claim _secureCertElement at ".cert_element" specified address with NULL content.

    const certElement_t _secureCertElement @ ".cert_element" ={ } 

    2. The following syntax claim _secureCertElement at ".cert_element" specified address with specified content.

    #pragma location=".cert_element"
    const certElement_t _secureCertElement @ ".cert_element" =
    #endif
    {
      .version    = SECURE_SIGN_TYPE,
      .len        = SECURE_CERT_LENGTH,
      .options    = SECURE_CERT_OPTIONS,
      .signerInfo = {0xb0,0x17,0x7d,0x51,0x1d,0xec,0x10,0x8b},
      .certPayload.eccKey.pubKeyX = {0xd8,0x51,0xbc,0xa2,0xed,0x3d,0x9e,0x19,0xb7,0x33,0xa5,0x2f,0x33,0xda,0x05,0x40,0x4d,0x13,0x76,0x50,0x3d,0x88,0xdf,0x5c,0xd0,0xe2,0xf2,0x58,0x30,0x53,0xc4,0x2a},
      .certPayload.eccKey.pubKeyY = {0xb9,0x2a,0xbe,0xef,0x66,0x5f,0xec,0xcf,0x56,0x16,0xcc,0x36,0xef,0x2d,0xc9,0x5e,0x46,0x2b,0x7c,0x3b,0x09,0xc1,0x99,0x56,0xd9,0xaf,0x95,0x81,0x63,0x23,0x7b,0xe7}
     };

    3. Your understanding about the following syntax is correct.

    #define BIM_VAR_ADDR  0x20000400
    
    
    #ifdef __TI_COMPILER_VERSION__
      #pragma location = BIM_VAR_ADDR
      #pragma NOINIT(_bim_var)
      uint32_t _bim_var;
    #elif __IAR_SYSTEMS_ICC__
      __no_init uint32_t _bim_var @ BIM_VAR_ADDR;
    #endif