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.

[参考译文] TMS320F28335:我可以生成中断报告&'以及线程&'执行时间

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1518077/tms320f28335-can-i-generate-a-report-of-the-interrupts-and-threads-execution-time

器件型号:TMS320F28335

工具/软件:

基本上就是图形 执行分析 没问题、但由于我必须运行并停止并找到中断、然后放大/缩小 来记录时间戳。 并针对所有任务/中断来回重复整个过程、我 继续操作越久、水平滚动就越困难。

工具/软件:

系统信息:

Code Composer Studio 版本:10.4.0.00006

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

    遗憾的是、UIA 不再受到真正的支持、而且我们在 C2000团队没有大量的相关专业知识、但我可以猜测。 您是否正在使用"Execution Graph"视图? 我相信右键点击图形并转到"Data"->"Export All"允许您导出包含时间戳的 csv。 这是否会为您提供所需的数据?

    Whitney

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

    typedef struct {
        U32INT start;
        U32INT total;
        U32INT count;
    } IRQTiming;
    
    #define NUM_IRQS 10
    IRQTiming irqTimings[NUM_IRQS];
    
    void isr(){
        U32INT start = Timestamp_get32();
    
    // some work
    
     U32INT end = Timestamp_get32();
     irqTimings[0].total += (end - start);
     irqTimings[0].count++;
     
     }
     
    void reportTask(UArg arg0) {
        U32INT i;
        for (i = 0; i < NUM_IRQS; i++) {
            if (irqTimings[i].count > 0) {
               // Log_info1("Sys stack peak %d", stkInfo.hwiStackPeak);
                Log_info3("IRQ %d: Avg Time = %lu cycles, Count = %lu\n",
                              i,
                              irqTimings[i].total / irqTimings[i].count,
                              irqTimings[i].count);
                irqTimings[i].total = 0;
                irqTimings[i].count = 0;
            }
        }
    
    }
    
    
    var clock2Params = new Clock.Params();
    clock2Params.instance.name = "REPORT";
    clock2Params.period = 1000; // (1 sec )
    clock2Params.startFlag = true;
    Program.global.MAIN = Clock.create("&reportTask", 1000, clock2Params);
    
    

    这是可取的还是有任何更好或建议的方法?  

    ```μ s

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

    "你听我说。" "你是什么人?

    Whitney