NXP MCU 技术论坛
直播中

丁冬芹

7年用户 1286经验值
私信 关注
[问答]

i.MX 8QuadMax为什么CodeQuickAccess 32字节和DataQuickAccess 128字节对齐?

以下片段摘自SDK 中的MIMX8QM6xxxFF_cm4_core0_ddr_ram.ld模板链接器脚本:
  __TDATA_ROM = __DATA_ROM + SIZEOF(.data); /* Symbol is used by startup for TCM data initialization */
  .quickaccess : AT(__TDATA_ROM)
  {
    __quickaccess_start__ = .;
    . = ALIGN(32);
    *(CodeQuickAccess)
    . += SAFE_BOUNDARY_LEN;
    *(DataQuickAccess)
    . = ALIGN(128);
    __quickaccess_end__ = .;
  } > m_tcml几个问题:

  • 为什么 CodeQuickAccess 32 字节和 DataQuickAccess 128 字节对齐?为什么我们不能接受 4 字节对齐?
  • 是否可以将.quickaccess部分分成两部分,这样我们就可以完全将m_tcml用于 CodeQuickAccess,将m_tcmu用于 DataQuickAccess?

这是内存规格概述:

MEMORY
{
  m_interrupts          (RX)  : ORIGIN = 0x88800000, LENGTH = 0x00000A00
  m_text                (RX)  : ORIGIN = 0x88800A00, LENGTH = 0x003FF600
  m_data                (RW)  : ORIGIN = 0x88C00000, LENGTH = 0x00400000
  m_data2               (RW)  : ORIGIN = 0x89000000, LENGTH = 0x07000000
  m_tcml                (RW)  : ORIGIN = 0x1FFE0020, LENGTH = 0x0001FFE0
  m_tcmu                (RW)  : ORIGIN = 0x20000000, LENGTH = 0x00020000
}
谢谢!

更多回帖

发帖
×
20
完善资料,
赚取积分