下午好!
我已经在论坛中搜索过、但尚未找到任何与处理器负载/任务时序测量相关的文章。 如果有的话、如果您能引导我转向他们、我将不胜感激。
我正在寻找一种方法来查看我的 Simulink 代码推动处理器的程度。
我还查看了 Code 输出文件夹、以查看是否有一个文件显示使用了多少 RAM。 如果有人能帮我找到这个、那就太棒了。
他们是新手问题、但希望不会太难与过去的帖子交叉参考(如果我没有找到这些帖子)
此致
Chris
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.
下午好!
我已经在论坛中搜索过、但尚未找到任何与处理器负载/任务时序测量相关的文章。 如果有的话、如果您能引导我转向他们、我将不胜感激。
我正在寻找一种方法来查看我的 Simulink 代码推动处理器的程度。
我还查看了 Code 输出文件夹、以查看是否有一个文件显示使用了多少 RAM。 如果有人能帮我找到这个、那就太棒了。
他们是新手问题、但希望不会太难与过去的帖子交叉参考(如果我没有找到这些帖子)
此致
Chris
尊敬的 Chris:
这篇文章是否回答了 您在测量 CPU 任务时序方面所寻找的内容。
关于存储器使用情况-查找链接器映射文件。 这应包含内存使用情况。
Ashwini
尊敬的 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:
您的模型中的内存复制块配置不正确。 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。