ZHCACD3A march   2023  – april 2023 TMS320C28341 , TMS320C28342 , TMS320C28343 , TMS320C28343-Q1 , TMS320C28344 , TMS320C28345 , TMS320C28346 , TMS320C28346-Q1

 

  1.   1
  2.   摘要
  3.   商标
  4. 1引言
  5. 2字节与字术语
  6. 3需要考虑的要点
    1. 3.1 不支持 8 位数据类型
    2. 3.2 存储器大小用 16 位表示
    3. 3.3 数组和结构:各个元素偏移量是不同的
    4. 3.4 标准数据类型宽度的差异
    5. 3.5 处理 8 位通信协议
  7. 4参考文献
  8. 5修订历史记录

字节与字术语

一直以来,字节被定义为存储器的最小可寻址单元。因此,从技术上讲,字节的大小取决于硬件:C28x 器件为 16 位,Arm 器件为 8 位。但如今,字节用作 8 位的同义词,因为大多数器件架构都是 8 位可寻址的。为避免混淆,我们使用术语 8 位字节和 16 位字

器件特性集中的字节和字用法文档:

GUID-20230206-SS0I-ZFL5-6Z4N-QXZDXLNHFXB6-low.png

从 C28x 编译器的角度来看,存储器大小始终以 16 位的最小可寻址单元表示。这包括存储器长度、链接器 cmd 文件、.map 文件中提供的代码/数据大小等。标准 sizeof() 函数还返回以 16 位为单位的大小。

  • 器件特定数据表中的存储器映射表:
    表 2-1 存储器映射表
    存储器 大小 起始地址 终止地址
    LS0 RAM 2K × 16 0x0000 8000 0x0000 87FF
    LS1 RAM 2K × 16 0x0000 8800 0x0000 8FFF
  • 链接器命令文件:
    RAMLS0     : origin = 0x00008000,  length = 0x0800
    RAMLS1     : origin = 0x00008800,  length = 0x0800
  • Code Composer Studio™ (CCS) 生成的 .map 文件:
    MEMORY CONFIGURATIONS
    
          name          origin       length        used          unused       attr
    -------------      --------      ------        ----          ------       ----
      RAMLS0           00008000     00000800     00000112      000006ee      RWIX
      RAMLS1           00008800     00000800     00000194      0000066c      RWIX
  • sizeof(uint32_t) = 2 → 2 * 16 位