TMS320F2800157: Minimum Addressable Size in controller

Part Number: TMS320F2800157

What I observed on the TMS320F2800157 controller that even if I define a uint8_t variable still it has a siize of 16 bits. Does that mean that my minimum addressable size will be 2 bytes only. Is there a way I can have 8 bit variables.

  • This is expected as the c2000 family is a 16-bit architecture

    Does that mean that my minimum addressable size will be 2 bytes only

    Yes, that is correct.

    Is there a way I can have 8 bit variables.

    No.

    Please read more about the architecture here:

    dev.ti.com/.../node

  • Thanks for the clarification. I want to be very precise here to avoid misunderstanding.

    On C2000 (TMS320F2800157):

    1. uint8_t does exist as a C type and sizeof(uint8_t) == 1, correct?
    2. However, each uint8_t variable is stored in a full 16‑bit word due to word addressing, correct?
    3. Byte access is performed using byte instructions (e.g. MOV.B, __byte()), not normal word loads, correct?

    If all three are correct, then the accurate statement would be:

    “C2000 supports 8‑bit data types, but not byte‑addressable memory.”

    Can you please confirm if this wording is correct?

    eg if I define a uint8_t variable it still can store values greater than 255.

  • On C2000 (TMS320F2800157):

    1. uint8_t does exist as a C type and sizeof(uint8_t) == 1, correct?
    2. However, each uint8_t variable is stored in a full 16‑bit word due to word addressing, correct?
    3. Byte access is performed using byte instructions (e.g. MOV.B, __byte()), not normal word loads, correct?

    Yes this is correct.

    eg if I define a uint8_t variable it still can store values greater than 255

    yes you can store 16 bits of information