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.

[参考译文] TMS320F28069F:映射文件中的存储器使用

Guru**** 2540720 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/709476/tms320f28069f-memory-usage-from-map-file

器件型号:TMS320F28069F

大家好、

我想检查代码的内存使用情况、以选择更便宜的芯片类型。

我从我的地图文件中获得了以下统计信息

===================

模块代码初始化数据未初始化数据
 ----    ----   --------    ----------

uartstdio.obj 1103 76 8384
main.obj 6098 400 1008
debug_module.obj 2879 4142 314

堆:0 0 1024
堆栈:0 0 944
+--+---------------- +--- --------------- --------------- +
总计:28707 9084 14773

===================

邮编:28707

初始化数据: 9084

未初始化的数据:14773

闪存使用量= 28707 + 9084

RAM 使用率= 9084 + 14773

正确吗?

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

    Hae Ryong、

    我建议使用映射文件的顶部来做出此决定、因为它包含存储器位置和长度。  您提供的信息没有提供足够的信息。  例如、未初始化的段很可能是位字段/控制寄存器空间、不占用任何物理 SRAM。  下面是我要介绍的数据的 C/P、以供参考。  然后、您可以确定哪些位置是 RAM/闪存/系统、然后根据需要缩放器件;

    存储器配置
    
    名称 原点长度 已使用 未使用的属性填充
    --- ---- ------ ---- ---- --------
    第0页:
    开始 00000000 00000002 00000002 00000000 RWIX
    RAMM0 00000050 000003b0 0000001e 00000392 RWIX
    RAML0_L3 00008000 00002000 000008ca 00001736 RWIX
    FPUTABLES 003fd590 000006a0 00000000 000006a0 RWIX
    IQTABLES 003fdf00 00000b50 00000000 00000b50 RWIX
    IQTABLES2 003羽毛50 0000008c 00000000 0000008c RWIX
    IQTABLES3 003feadc 000000aa 00000000 000000aa RWIX
    启动 ROM 003ff3b0 00000c10 00000000 00000c10 RWIX
    复位 003fffc0 00000002 00000000 00000002 RWIX
    
    第1页:
    BOOT_RSVD 00000002 0000004e 00000000 0000004e RWIX
    RAMM1 00000400 00000400 00000200 00000200 RWIX
    DEV_EMU 00000880 00000105 00000004 00000101 RWIX
    SYS_PWR_CTL 00000985 00000003 00000003 00000000 RWIX
    FLASH_REGS 00000a80 00000060 00000008 00000058 RWIX
    CSM 00000ae0 00000020 00000010 00000010 RWIX
    ADC_Result 00000b00 00000020 00000010 00000010 RWIX
    CPU_TIMER0 00000c00 00000008 00000008 00000000 RWIX
    CPU_Timer1 00000c08 00000008 00000008 00000000 RWIX
    CPU_TIMER2 00000c10 00000008 00000008 00000000 RWIX
    PIE_CTRL 00000ce0 00000020 0000001a 00000006 RWIX
    PIE_VECT 00000d00 00000100 00000100 00000000 RWIX
    DMA 00001000 00000200 000000e0 00000120 RWIX
    CLA1 00001400 00000080 00000040 00000040 RWIX
    USB0 00004000 00001000 00000454 00000bac RWIX
    McBSPA 00005000 00000040 00000024 0000001c RWIX
    ECANA 00006000 00000040 00000034 0000000c RWIX
    ECANA_LAM 00006040 00000040 00000040 00000000 RWIX
    ECANA_MOTS 00006080 00000040 00000040 00000000 RWIX
    ECANA_MOTO 000060c0 00000040 00000040 00000000 RWIX
    ECANA_MBOX 00006100 00000100 00000100 00000000 RWIX
    COMP1 00006400 00000020 00000014 0000000c RWIX
    COMP2 00006420 00000020 00000014 0000000c RWIX
    Comp3 00006440 00000020 00000014 0000000c RWIX
    EPWM1 00006800 00000040 00000040 00000000 RWIX
    EPWM2 00006840 00000040 00000040 00000000 RWIX
    EPWM3 00006880 00000040 00000040 00000000 RWIX
    EPWM4 000068c0 00000040 00000040 00000000 RWIX
    EPWM5 00006900 00000040 00000040 00000000 RWIX
    EPWM6 00006940 00000040 00000040 00000000 RWIX
    EPWM7 00006980 00000040 00000040 00000000 RWIX
    EPWM8 000069c0 00000040 00000040 00000000 RWIX
    ECAP1 00006a00 00000020 00000020 00000000 RWIX
    ECAP2 00006a20 00000020 00000020 00000000 RWIX
    ECAP3 00006a40 00000020 00000020 00000000 RWIX
    HRCAP1 00006ac0 00000020 00000020 00000000 RWIX
    HRCAP2 00006ae0 00000020 00000020 00000000 RWIX
    EQEP1 00006b00 00000040 00000022 0000001e RWIX
    EQEP2 00006b40 00000040 00000022 0000001e RWIX
    HRCAP3 00006c80 00000020 00000020 00000000 RWIX
    HRCAP4 00006cA0 00000020 00000020 00000000 RWIX
    GPIOCTRL 00006f80 00000040 00000040 00000000 RWIX
    GPIODAT 00006fc0 00000020 00000020 00000000 RWIX
    GPIOINT 00006fe0 00000020 00000020 00000000 RWIX
    系统 00007010 00000030 00000030 00000000 RWIX
    SPIA 00007040 00000010 00000010 00000000 RWIX
    SCIA 00007050 00000010 00000010 00000000 RWIX
    NMIINTRUPT 00007060 00000010 00000010 00000000 RWIX
    XINTRUPT 00007070 00000010 00000010 00000000 RWIX
    ADC 00007100 00000080 00000050 00000030 RWIX
    SPIB 00007740 00000010 00000010 00000000 RWIX
    SCIB 00007750 00000010 00000010 00000000 RWIX
    I2CA 00007900 00000040 00000022 0000001e RWIX
    RAML4 0000a000 00002000 00000112 00001ee RWIX
    RAML5 0000c000 00002000 00000000 00002000 RWIX
    RAML6 0000e000 00002000 00000000 00002000 RWIX
    RAML7 00010000 00002000 00000000 00002000 RWIX
    RAML8 00012000 00002000 00000000 00002000 RWIX
    USB_RAM 00040000 00000800 00000000 00000800 RWIX
    PARTID 003d7e80 00000001 00000000 RWIX
    CSM_PWL 003f7ff8 00000008 00000008 00000000 RWIX
    

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

    感谢您的回答。

    我完全不理解映射文件。

    您能不能让我知道如何从映射文件中详细计算闪存、RAM 使用情况?

    我的存储器配置如下。(芯片组为 F28069F)

    ===========================

    存储器配置

    名称           原点    长度     已使用  未使用 的属性填充
    ------------ ----    ------    ----   ----   --------
    第0页:
     RAML0_1    00008000 00002000 00000bfd 00001403 RWIX
     OTP         003d7800 00000400 00000000 00000400 RWIX
     FLASHH      003d8000 00004000 00000000 00004000 RWIX
     FLASHG     003dc000 00004000 00000000 00004000 RWIX
     FLASHF      003e0000 00004000 00000bfd 00003403 RWIX
     FLASHA_B  003e4000 00013f80 00007374 0000cc0c RWIX
     csm_RSVD  003f7f80 00000076 00000000 00000076 RWIX
     开始       003f7ff6 00000002 00000002 00000000 RWIX
     CSM_PWL_P0 003f7ff8 00000008 00000000 00000008 RWIX
     FPUTABLES  003fd590 000006a0 00000000 000006a0 RWIX
     IQTABLES   003fdc30 00000b50 00000b50 00000000 RWIX
     IQTABLES2  003fe780 0000008c 00000000 0000008c RWIX
     IQTABLES3  003fe80c 000000aa 00000000 000000aa RWIX
     ROM         003ff3b0 00000c10 00000000 00000c10 RWIX
     复位       003fffc0 00000002 00000000 00000002 RWIX
     矢量   003fffc2 0000003E 00000000 0000003E RWIX

    第1页:
     BOOT_RSVD 00000000 00000050 00000000 00000050 RWIX
     RAMM0      00000050 000003b0 000003b0 00000000 RWIX
     RAMM1      00000400 00000400 00000000 00000400 RWIX
     RAML2_3.     0000a000 00006000 000036cc 00002934 RWIX
     RAML7.       00010000 00002000 00000000 00002000 RWIX
     RAML8.       00012000 00001800 00000000 00001800 RWIX
     USB_RAM   00040000 00000800 00000000 00000800 RWIX

    ================================================================

    提前感谢。

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

    您是否会澄清如何从映射文件计算闪存、RAM 使用量?

    我猜是这样  

    闪存=  FLASHA_B + FLASHF + FLASHG + FLASHH

    RAM = RAML0_1 + RAML2_3 + RAML7 + RAML8 + RAMM0 + RAMM1

    正确吗?

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

    Hae Ryong、

    这对于您提供的映射文件是正确的、您需要查看"已使用"部分、在本例中、只有 FlashA_B 和 FlashF 具有任何内容、仅 RAM L0_1、L2_3、M0也是如此。  另请注意、这些仅是连接器中定义的存储器;器件上还没有使用闪存的8个扇区和3个 SRAM 阵列。

    您可以在此处找到器件的存储器映射:

    http://www.ti.com/product/TMS320F28069/datasheet/memory-maps-sprs6983012#SPRS6983012

    最棒的
    Matthew