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
      C6000_8.2.0
      C7000_5.0.0.STS*
      C6000_8.3.0
      MSP430_20.2.0.LTS
      C7000_2.1.0.LTS
      ARM_18.12.0.LTS
      MSP430_21.6.0.LTS
      C2000_21.6.0.LTS
      PRU_2.3.0
      C7000_3.1.0.LTS
      PRU_2.2.0
      ARM_20.2.0.LTS
      C7000_4.0.0.STS
      C7000_4.1.0.LTS
      C2000_20.2.0.LTS
      ARM_18.1.0.LTS
      MSP430_18.1.0.LTS
      C7000_1.4.0.LTS
      ARM_16.9.0.LTS
      C2000_22.6.0.LTS
      MSP430_18.12.0.LTS
      MSP430_16.9.0.LTS
      C2000_18.12.0.LTS
      Show
      C2000_16.9.0.LTS C6000_8.2.0 C7000_5.0.0.STS* C6000_8.3.0 MSP430_20.2.0.LTS C7000_2.1.0.LTS ARM_18.12.0.LTS MSP430_21.6.0.LTS C2000_21.6.0.LTS PRU_2.3.0 C7000_3.1.0.LTS PRU_2.2.0 ARM_20.2.0.LTS C7000_4.0.0.STS C7000_4.1.0.LTS C2000_20.2.0.LTS ARM_18.1.0.LTS MSP430_18.1.0.LTS C7000_1.4.0.LTS ARM_16.9.0.LTS C2000_22.6.0.LTS MSP430_18.12.0.LTS MSP430_16.9.0.LTS C2000_18.12.0.LTS
    • Hide
      C2000_22.6.2.LTS*
      C2000_21.6.2.LTS*
      Show
      C2000_22.6.2.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: