This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430FR5969:.map 文件中的 attr 列意味着什么?

Guru**** 2455360 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1467052/msp430fr5969-what-does-attr-column-in-map-file-mean

器件型号:MSP430FR5969

工具与软件:

.map 文件中的 attr 列意味着什么? RWIX 的含义是什么? 我假设相应的存储器范围具有 READ、WRITE、I??? 并执行访问。 我代表什么? 启用/禁用自动 MPU 配置会更改代码的行为(当启用 MPU 时、对 FRAM2存储器的写访问不会修改 FRAM2中的值、因为我尚未正确设置 MPU)、但 attr 列仍然填满 RWIX。

MEMORY CONFIGURATION

         name            origin    length      used     unused   attr    fill
----------------------  --------  ---------  --------  --------  ----  --------
  SFR                   00000000   00000010  00000000  00000010  RWIX
  PERIPHERALS_8BIT      00000010   000000f0  00000000  000000f0  RWIX
  PERIPHERALS_16BIT     00000100   00000100  00000000  00000100  RWIX
  INFOD                 00001800   00000080  00000000  00000080  RWIX
  INFOC                 00001880   00000080  00000000  00000080  RWIX
  INFOB                 00001900   00000080  00000000  00000080  RWIX
  INFOA                 00001980   00000080  00000000  00000080  RWIX
  RAM                   00001c00   00000800  00000594  0000026c  RWIX
  FRAM                  00004400   0000bb80  0000a1d5  000019ab  RWIX
  JTAGSIGNATURE         0000ff80   00000004  00000004  00000000  RWIX  ffff 
  BSLSIGNATURE          0000ff84   00000004  00000004  00000000  RWIX  ffff 
  IPESIGNATURE          0000ff88   00000008  00000008  00000000  RWIX  ffff
...

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    它们可能没有任何意义。 它们至多是程序加载器的提示。 这在 Linux 环境中可能意味着什么。 当然、MSP430的 GCC 使用.elf 格式、其中包含此类内容。 但快速比较.map 输出与 readelf 对链接器输出内容的看法便会发现不同。 另请参见 ELF 部分。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    在哪里可以看到、在选中"Enable Memory Protection Unit (MPU)"和"Let compiler handle ..."时、编译器是如何处理 MPU 配置的? 说到编译的处理方式、我指的是范围和访问权限。 因为 "ATTR"列并没有在结果上表示它。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    根据 这里、"i"是指可以初始化存储器范围。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我仍然找不到编译器或连接器报告 MPU 段范围的位置。 但可以 通过在调试会话中查看寄存器来查找它们、也可以读取链接器文件以查找它们。

    我也找不到编译器或链接器报告 MPU 段访问权限的位置、但根据链接器文件、有一个默认/硬编码配置。 未启用 IPE 时、信息段 为 r-、段1为 rw-、段2为 r-、段3为 r-x