Uploaded image for project: 'Embedded Software & Tools'
  1. Embedded Software & Tools
  2. EXT_EP-10875

EABI cinit copy initialization of a single byte size global variable overwrites the adjacent memory location with a zero value

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Medium Medium
    • Code Generation Tools
    • CODEGEN-10306
    • Show
      https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1190185/cl2000-linker-generating-wrong-autoinitialization-data/4484946?tisearch=e2e-sitesearch&keymatch=EXT_EP-10875#4484946
    • Hide
      C2000_16.9.0.LTS
      C7000_2.1.0.LTS
      MSP430_21.6.0.LTS
      C7000_3.1.0.LTS
      C7000_4.1.0.LTS
      C7000_1.4.0.LTS
      MSP430_16.9.0.LTS
      C6000_8.2.0
      C6000_8.3.0
      MSP430_20.2.0.LTS
      ARM_18.12.0.LTS
      C7000_5.0.0.LTS
      C2000_21.6.0.LTS
      PRU_2.3.0
      PRU_2.2.0
      C7000_6.0.0.LTS*
      ARM_20.2.0.LTS
      C7000_4.0.0.STS
      C2000_20.2.0.LTS
      ARM_18.1.0.LTS
      MSP430_18.1.0.LTS
      ARM_16.9.0.LTS
      C2000_22.6.0.LTS
      MSP430_18.12.0.LTS
      C2000_18.12.0.LTS
      Show
      C2000_16.9.0.LTS C7000_2.1.0.LTS MSP430_21.6.0.LTS C7000_3.1.0.LTS C7000_4.1.0.LTS C7000_1.4.0.LTS MSP430_16.9.0.LTS C6000_8.2.0 C6000_8.3.0 MSP430_20.2.0.LTS ARM_18.12.0.LTS C7000_5.0.0.LTS C2000_21.6.0.LTS PRU_2.3.0 PRU_2.2.0 C7000_6.0.0.LTS* ARM_20.2.0.LTS C7000_4.0.0.STS C2000_20.2.0.LTS ARM_18.1.0.LTS MSP430_18.1.0.LTS ARM_16.9.0.LTS C2000_22.6.0.LTS MSP430_18.12.0.LTS C2000_18.12.0.LTS
    • Hide
      C2000_25.3.0.LTS*
      C2000_22.6.3.LTS
      C2000_21.6.2.LTS*
      Show
      C2000_25.3.0.LTS* C2000_22.6.3.LTS C2000_21.6.2.LTS*
    • default
    • Hide
      Include at least one additional global variable in the same data section’s init record to make it larger. This will generate a cinit record with the correct size for number of variables to initialize.

      Or avoid using the adjacent memory location which will get zero initialized.
      Show
      Include at least one additional global variable in the same data section’s init record to make it larger. This will generate a cinit record with the correct size for number of variables to initialize. Or avoid using the adjacent memory location which will get zero initialized.

      EABI cinit copy initialization of a single byte size global variable overwrites the adjacent memory location with a zero value. Depending on the order of global variable initializations, this might over write a variable in the adjacent memory location.

      This happens only for single-variable cinit copy records and only for "copy" compression which actually means no compression.

      Some targets have 8-bit bytes and some have 16-bit bytes. This issue affects both.

            syncuser TI User
            syncuser TI User
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: