1

Enable "configGENERATE_RUN_TIME_STATS" macro in FreeRTOSconfig.h to see "Runtime".

screenshot

हालाँकि, मैंने पहले ही निर्दिष्ट मैक्रो और अन्य आवश्यक मैक्रो को FreeRTOSconfig.h में सक्षम कर दिया है:

#define configGENERATE_RUN_TIME_STATS            1

/* Definitions needed when configGENERATE_RUN_TIME_STATS is on */
#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS configureTimerForRunTimeStats
#define portGET_RUN_TIME_COUNTER_VALUE getRunTimeCounterValue

प्लगइन यह क्यों उल्लेख करता है कि इस मैक्रो को सक्षम करने की आवश्यकता है जब यह पहले से ही सक्षम है? डिबगिंग के दौरान कार्य सूची में रनटाइम देखने के लिए मुझे क्या करना चाहिए?


1 ग्रहण अपडेट-साइट: http://freescale.com/lgfiles /अद्यतन/ग्रहण/केडीएस

1
wovano 21 जून 2019, 15:11

2 जवाब

सबसे बढ़िया उत्तर

इस पोस्ट के अनुसार इसका समाधान है

#define portREMOVE_STATIC_QUALIFIER 1

यह समझ में आता है, क्योंकि फ्रीआरटीओएस स्रोत कोड (कार्य.सी) में निम्नलिखित टिप्पणी शामिल है:

/*
 * Some kernel aware debuggers require the data the debugger needs access to be
 * global, rather than file scope.
 */
#ifdef portREMOVE_STATIC_QUALIFIER
    #define static
#endif

और उसी फ़ाइल में प्रासंगिक चर वास्तव में स्थिर के रूप में परिभाषित किए गए हैं:

#if ( configGENERATE_RUN_TIME_STATS == 1 )
    PRIVILEGED_DATA static uint32_t ulTaskSwitchedInTime = 0UL;
    PRIVILEGED_DATA static uint32_t ulTotalRunTime = 0UL;
#endif
1
wovano 27 जून 2019, 12:17

पहली बात यह निर्धारित करना है कि क्या समस्या डीबगर प्लग में है (मुझे यकीन नहीं है कि यह कौन सा है) या बिल्ड में है। ऐसा करने के लिए xTaskIncrementTick() में task.c के अंदर एक ब्रेकपॉइंट रखें, फिर pxCurrentTCB वेरिएबल देखें, जो एक TCB संरचना का सूचक है। यदि रन टाइम आँकड़े सक्षम हैं तो ulRunTimeCounter नामक एक संरचना सदस्य होना चाहिए। क्या वह संरचना सदस्य है? यदि हां, तो क्या इसमें कोई मूल्य है? मान गलत होने पर भी, यदि वह है, तो ऐसा प्रतीत होता है कि समस्या डीबगर प्लग-इन में है।

1
Richard 21 जून 2019, 19:07