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.

[参考译文] TMS320F28379D:处理器负载 Simulink 块功能与放大器;RAM 的使用

Guru**** 2609895 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1049275/tms320f28379d-processor-load-simulink-block-functionality-ram-usage

器件型号:TMS320F28379D

下午好!

我已经在论坛中搜索过、但尚未找到任何与处理器负载/任务时序测量相关的文章。 如果有的话、如果您能引导我转向他们、我将不胜感激。

我正在寻找一种方法来查看我的 Simulink 代码推动处理器的程度。

我还查看了 Code 输出文件夹、以查看是否有一个文件显示使用了多少 RAM。 如果有人能帮我找到这个、那就太棒了。

他们是新手问题、但希望不会太难与过去的帖子交叉参考(如果我没有找到这些帖子)

此致

Chris

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

    尊敬的 Chris:

    这篇文章是否回答了 您在测量 CPU 任务时序方面所寻找的内容。

    https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/943879/faq-faq-how-do-i-use-simulink-custom-code-blocks-to-measure-code-execution-time-on-ti-c2000

    关于存储器使用情况-查找链接器映射文件。 这应包含内存使用情况。

    Ashwini

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

    谢谢你。

    我一直在查看链接器映射文件、希望了解我可以减去哪些十六进制存储器地址来获取所用 RAM 存储器的十六进制值的任何建议。 我已插入搜索'ram'时显示内容的屏幕截图。

    感谢您的链接。 我一直在阅读、但需要更多时间来执行模型中的步骤。

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

    尊敬的 Chris:

    链接器映射文件显示段上下文以及起始地址和长度。 因此、在上面的快照中、ramfuncs 段长度为0x3b、它从地址0xA9358开始。

    如果您正在寻找 RAM 总使用情况的摘要、则可以在存储器配置中的文件顶部为每个 RAM 区域添加已使用的编号。 示例:

    存储器配置

            名称           源   长度     使用    未使用  的属性   填充
    ------------  ----  ------  ----  ----  --------  
    第0页:
     RAMM0                00000123  000002dd  00000000  000002dd RWIX
     RAMLS0               00008000  00000800  00000135  000006cb RWIX

    此处使用的是0x0 + 0x135 = 0x135

    谢谢、

    Ashwini

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

    非常感谢 Ashwini。

    我想就我打开的映射文件的内容做一些澄清。 您能帮我确定我应该在这种情况下添加的值吗? 我非常感谢,这样我就可以在我们的内部指南中记录这一点。 谢谢你。

    对于第0页、我可以看到 RAMLS_PROG 已使用= 0000003b

    对于第1页、我可以看到使用的 RAMM0M1 = 00000400

    RAMLS_DATA 已使用= 0

    RAMD0D1 = 0

    RAMGS_DATA = 00006ef3

    存储器配置

    名称源长度使用未使用的属性填充
    ------------ ---- ------ ---- ---- --------
    第0页:
    开始00000000 00000002 00000000 00000002 RWIX
    RAMLS_PROG 00008000 00002000 0000003b 00001fc5 RWIX
    BEGIN_FLASH 00080000 00000002 00000002 00000000 RWIX
    FLASHA_N 00080002 0003fffe 0002b4be 00014b40 RWIX
    重置003fffc0 00000002 00000000 00000002 RWIX

    第1页:
    BOOT_RSVD 00000002 00000120 00000000 00000120 RWIX
    RAMM0M1 00000122 000006DE 00000400 000002DE RWIX
    ADCA_RESULT 00000b00 00000020 00000018 00000008 RWIX
    ADCB_RESULT 00000b20 00000020 00000018 00000008 RWIX
    ADCC_RESULT 00000b40 00000020 00000018 00000008 RWIX
    ADCD_Result 00000b60 00000020 00000018 00000008 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
    PI_VECT 00000d00 00000200 000001c0 00000040 RWIX
    DMA 00001000 00000200 000000e0 00000120 RWIX
    CLA1 00001400 00000040 0000003E 00000002 RWIX
    CLA1_MSGRAMLOW 00001480 00000080 00000000 00000080 RWIX
    CLA1_MSGRAMHIGH 00001500 00000080 00000000 00000080 RWIX
    EPWM1 00004000 00000100 00000100 00000000 RWIX
    EPWM2 00004100 00000100 00000100 00000000 RWIX
    EPWM3 00004200 00000100 00000100 00000000 RWIX
    EPWM4 00004300 00000100 00000100 00000000 RWIX
    EPWM5 00004400 00000100 00000100 00000000 RWIX
    EPWM6 00004500 00000100 00000100 00000000 RWIX
    EPWM7 00004600 00000100 00000100 00000000 RWIX
    EPWM8 00004700 00000100 00000100 00000000 RWIX
    EPWM9 00004800 00000100 00000100 00000000 RWIX
    EPWM10 00004900 00000100 00000100 00000000 RWIX
    EPWM11 00004a00 00000100 00000100 00000000 RWIX
    EPWM12 00004b00 00000100 00000100 00000000 RWIX
    eCAP1 00005000 00000020 00000020 00000000 RWIX
    ECAP2 00005020 00000020 00000020 00000000 RWIX
    ECAP3 00005040 00000020 00000020 00000000 RWIX
    ECAP4 00005060 00000020 00000020 00000000 RWIX
    ECAP5 00005080 00000020 00000020 00000000 RWIX
    ECAP6 000050a0 00000020 00000020 00000000 RWIX
    EQEP1 00005100 00000040 00000022 0000001e RWIX
    EQEP2 00005140 00000040 00000022 0000001e RWIX
    EQEP3 00005180 00000040 00000022 0000001e RWIX
    DACA 00005c00 00000010 00000008 00000008 RWIX
    DACB 00005c10 00000010 00000008 00000008 RWIX
    DACC 00005c20 00000010 00000008 00000008 RWIX
    CMPSS1 00005c80 00000020 00000020 00000000 RWIX
    CMPSS2 00005cA0 00000020 00000020 00000000 RWIX
    CMPSS3 00005cc0 00000020 00000020 00000000 RWIX
    CMPSS4 00005ce0 00000020 00000020 00000000 RWIX
    CMPSS5 00005d00 00000020 00000020 00000000 RWIX
    CMPSS6 00005d20 00000020 00000000 RWIX
    CMPSS7 00005d40 00000020 00000020 00000000 RWIX
    CMPSS8 00005d60 00000020 00000020 00000000 RWIX
    SDFM1 00005e00 00000080 00000080 00000000 RWIX
    SDFM2 00005e80 00000080 00000000 RWIX
    MCBSPA 00006000 00000040 00000024 0000001c RWIX
    MCBSPB 00006040 00000040 00000024 0000001c RWIX
    SPIA 00006100 00000010 00000010 00000000 RWIX
    SPIB 00006110 00000010 00000010 00000000 RWIX
    *** 00006120 00000010 00000010 00000000 RWIX
    SPID 00006130 00000010 00000000 00000010 RWIX
    upp 00006200 00000100 00000048 000000b8 RWIX
    WD 00007000 00000040 0000002b 00000015 RWIX
    NMIINTRUPT 00007060 00000010 00000007 00000009 RWIX
    XINT 00007070 00000010 0000000b 00000005 RWIX
    SCIA 00007200 00000010 00000010 00000000 RWIX
    SCIB 00007210 00000010 00000000 RWIX
    SCIC 00007220 00000010 00000010 00000000 RWIX
    SCID 00007230 00000010 00000010 00000000 RWIX
    I2CA 00007300 00000040 00000022 0000001e RWIX
    I2CB 00007340 00000040 00000022 0000001e RWIX
    ADCA 00007400 00000080 00000080 00000000 RWIX
    ADCB 00007480 00000080 00000080 00000000 RWIX
    ADCC 00007500 00000080 00000080 00000000 RWIX
    ADCD 00007580 00000080 00000080 00000000 RWIX
    INPUT_XBAR 00007900 00000020 00000020 00000000 RWIX
    Xbar 00007920 00000020 00000020 00000000 RWIX
    SYNC_SOC 00007940 00000010 00000006 0000000A RWIX
    DMACLASRCSEL 00007980 00000040 0000001a 00000026 RWIX
    ePWM_XBAR 00007a00 00000040 00000040 00000000 RWIX
    CLB_XBAR 00007a40 00000040 00000000 00000040 RWIX
    output_XBAR 00007a80 00000040 00000040 00000000 RWIX
    GPIOCTRL 00007c00 00000180 00000180 00000000 RWIX
    GPIODAT 00007f00 00000030 00000030 00000000 RWIX
    RAMLS_DATA 0000a000 00001000 00000000 00001000 RWIX
    RAMD0D1 0000b000 00001000 00000000 00001000 RWIX
    RAMGS_IPCBuffCPU1 0000c000 00001000 00000000 00001000 RWIX
    RAMGS_IPCBuffCPU2 0000d000 00001000 00000000 00001000 RWIX
    RAMGS_DATA 0000e000 00007000 00006ef3 0000010d RWIX
    CPU2TOCPU1RAM 0003f800 00000400 00000000 00000400 RWIX
    CPU1TOCPU2RAM 0003fc00 00000400 00000000 00000400 RWIX
    EMIF1 00047000 00000800 00000070 00000790 RWIX
    EMIF2 00047800 00000800 00000070 00000790 RWIX
    IPC 00050000 00000024 00000024 00000000 RWIX
    FLASHPUMPSEMAPHORE 00050024 00000002 00000002 00000000 RWIX
    DEV_CFG 0005d000 00000180 0000012e 00000052 RWIX
    analog_Subsys 0005d180 00000080 00000048 00000038 RWIX
    CLK_CFG 0005d200 00000100 00000032 000000ce RWIX
    CPU_SYS 0005d300 00000100 00000082 0000007e RWIX
    ROMPREFETCH 0005e608 00000002 00000002 00000000 RWIX
    DCSM_Z1 0005f000 00000030 00000024 0000000c RWIX
    DCSM_Z2 0005f040 00000030 00000024 0000000c RWIX
    DCSM_common 0005f070 00000010 00000008 00000008 RWIX
    MEMCFG 0005f400 00000080 00000080 00000000 RWIX
    EMIF1CONFIG 0005f480 00000020 00000020 00000000 RWIX
    EMIF2CONFIG 0005f4a0 00000020 00000020 00000000 RWIX
    ACCESSPROTECTION 0005f4c0 00000040 00000040 00000000 RWIX
    MEMORYERROR 0005f500 00000040 00000040 00000000 RWIX
    ROMWAITSTATE 0005f540 00000002 00000002 00000000 RWIX
    FLASH0_CTRL 0005f800 00000300 00000182 0000017e RWIX
    FLASH0_ECC 0005fb00 00000040 00000028 00000018 RWIX
    DCSM_Z1_OTP 00078000 00000020 00000020 00000000 RWIX
    DCSM_Z2_OTP 00078200 00000020 00000020 00000000 RWIX

    此致

    Chris

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

    您好!

    是否可以让有经验的人员检查我的"FAQ-FAQ-HUD-I-Use-Simulink-custom-code-blocks-TO-measure-code-execution-time-on-ti-c2000"文章的实施是否正确?

    我看到计数器输出是一个 uint32。 也许 我的系统初始化/模型标题/模型源/系统输出中的语法可能需要调整?

    或者、我设置 MemoryCopy 并将数据传输到数据存储的方式可能不正确?

    我已经压缩了我正在构建的 slx 模型文件、它包含一个 Atomic 子系统。 提前感谢您。 此致。

    e2e.ti.com/.../RML_5F00_TMS320F28379D_5F00_Test8_5F00_ProcessorLoad.zip

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

    Chris、

    我们将让 MW 团队了解此帖子、以便他们可以帮助回复。 请给我们几天时间与他们同步等

    最棒的

    Matthew

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

    谢谢 Matthew、

    我非常感谢 MW 团队在这方面的支持。 我必须证明我们计划运行的处理器密集型模型是如何的。

    此致

    Chris

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

    尊敬的 Chris:

    您的模型中的内存复制块配置不正确。 Source 选项卡下的"Source code symbol"参数需要指定存储计时器值差异的变量的地址、例如.e 、&dct1。 此外、在 Destination (目标)选项卡下、Sample Time (采样时间)必须设置为'INF'(比如说1.0)以外的值、以便在每个步进时间读取和显示计时器差值。 将其设置为'INF'将在模型初始化期间只读取一次该值。

    此致、
    RAM ALA。

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

    感谢 RAM、这些技巧对我的模型非常有帮助。 我想进一步检查和澄清问题。

    因此、如果我理解正确、计时器输出将以微秒为单位。

    我的值为2966、任务以0.01秒的速度运行(这就是模型配置解算器设置为的值)

    那么我可以把2966us / 10000us 分频吗? 这将等于0.2966。

    是否需要进行任何其他计算来估算此电路板的处理器负载? 例如、该值等于30%还是3%?

    如果我提出一些小问题、请原谅我在这方面缺乏知识。 自从我上次对前一个控制单元进行这些检查以来已经有6年多了。 谢谢你。

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

    尊敬的 Chris:

    差异值2966是 CPU 定时器计数。 要将其转换为 CPU 时间、需要将其与每个周期的 CPU CLK 时间相乘。
    I.e、2966 *(1/200) us = 15us apprx。 (考虑200MHz 的 CPU CLK)

    这是执行相关功能所需的时间。
    请注意、如果中断被启用、这个时间会因 ISR 的执行时间而异。

    您可以计算 CPU 利用率的百分比、如下所示:
    考虑到步进时间为0.01s,(15us/0.01s)*100 = 0.15%

    您还可以通过切换子系统开头和结尾的 GPIO 引脚或您感兴趣的功能来交叉检查此情况、并使用示波器进行验证。

    此致、
    RAM ALA。