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.

[参考译文] TMS320F28034:映射文件变量大小混淆

Guru**** 2551870 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/744588/tms320f28034-map-file-variable-size-confusion

器件型号:TMS320F28034

您好!  

我正在使用 Matlab 2016b、其中包含 用于 TI C2000处理器的嵌入式代码支持包 v16.2.6。

我们使用此环境将 Simulink 模型代码构建到自动生成的 c 代码中、然后再构建到我们使用的.map .A2L .out 和.hex 文件中。  

该代码由 TI 编译器为 CCS5工具链编译。

我的问题是关于映射文件中我的一个静态变量的大小变化。

在附加 的 SW_11340_1_withBuffer.h 中、您可以找到结构 D_work _sw_11340_1、该结构在375行中具有 UINT32 Buffer[300]。   该缓冲区已从工程中删除、如 SW_11340_1_noBuffer.h 中所示

但是、映     射文件显示的变量 SW_11340_1_DWork (此结构的唯一实例)在 SW_11340_1_withBuffer.map (第1019行)中的大小为0x231、在 SW_11340_1_nobuffer.map (第1016行)中的大小为0x21e。  

如果我正确理解映射文件、则此大小差异仅为19 uint16空间。  

为什么从结构(缓冲区、索引和缓冲区和求和)中删除302 Uint32不会如此更改映射文件中的结构大小? 如果 映射文件中 SW_11340_1_DWork 的空间不包含缓冲区元素、则缓冲区元素保留在何处、如何确定?

请注意、这种缓冲区删除(以及缓冲区周围的简单函数)应该是这两个映射文件之间的唯一区别捕获。

感谢您在理解映射文件的工作原理方面提供的任何帮助、

Neal

e2e.ti.com/.../0143.SW_5F00_11340_5F00_1_5F00_withBuffer.h

e2e.ti.com/.../5658.SW_5F00_11340_5F00_1_5F00_noBuffer.h

e2e.ti.com/.../SW_5F00_11340_5F00_1_5F00_withBuffer.map.txt

e2e.ti.com/.../SW_5F00_11340_5F00_1_5F00_noBuffer.map.txt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如该列顶部所述、231和21e 是数据页、而不是存储器大小。 C28x 使用6位数据页指针进行直接寻址、.map 文件报告"SW_11340_1_DWork"的值。 要查找内存大小、您需要查看".ebss 段的组成部分:

    使用缓冲器:
    00008000 0000118a sw_11340_1.obj (.ebss)

    不带缓冲器:
    00008000 00000f2a sw_11340_1.obj (.ebss)

    0x118a - 0xf2a = 0x260 = 608

    我本来应该有604个16位字(即302个32位变量)。 您是否在某个位置删除了另外两个变量?

    此致、

    Richard
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您指出我的错误。 这些数字更有意义。
    仔细观察后、我发现另一个从 SW_11340_1.obj 中删除的 uint32。
    我仍然缺少剩余的两个 uint16s 空间的来源、尽管它们可能来自我尚未搜索的文件中的一些本地全局变量。
    感谢您的帮助、
    Neal