|
|
@@ -1,6 +1,6 @@
|
|
|
<?xml version="1.0" encoding="utf-8"?>
|
|
|
<component_viewer schemaVersion="0.1" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="Component_Viewer.xsd">
|
|
|
- <component name="CMSIS:RTOS2:Keil RTX5" brief="RTX5" version="5.2.3"/> <!-- name and version of the component -->
|
|
|
+ <component name="CMSIS:RTOS2:Keil RTX5" brief="RTX5" version="5.3.0"/> <!-- name and version of the component -->
|
|
|
|
|
|
<typedefs>
|
|
|
<!-- Attributes structure for thread -->
|
|
|
@@ -411,6 +411,13 @@
|
|
|
<member name="mpi_message_queue" type="*osRtxMpInfo_t" offset="160" info="Message queue control blocks"/>
|
|
|
</typedef>
|
|
|
|
|
|
+ <!-- OS Runtime Object Memory Usage structure -->
|
|
|
+ <typedef name="osRtxObjectMemUsage_t" info="OS Runtime Object Memory Usage" size="12">
|
|
|
+ <member name="cnt_alloc" type="uint32_t" offset="0" info="Counter for alloc"/>
|
|
|
+ <member name="cnt_free" type="uint32_t" offset="4" info="Counter for free"/>
|
|
|
+ <member name="max_used" type="uint32_t" offset="8" info="Maximum used"/>
|
|
|
+ </typedef>
|
|
|
+
|
|
|
<!-- OS Configuration structure -->
|
|
|
<typedef name="osRtxConfig_t" const="1" info="OS Configuration Structure" size="104">
|
|
|
<member name="flags" type="uint32_t" offset="0" info="OS configuration flags"/>
|
|
|
@@ -450,6 +457,8 @@
|
|
|
<typedef name="mem_head_t" info="Memory Pool Header Structure" size="8">
|
|
|
<member name="size" type="uint32_t" offset="0" info="Memory pool size"/>
|
|
|
<member name="used" type="uint32_t" offset="4" info="Size of used memory"/>
|
|
|
+
|
|
|
+ <var name="max_used" type="uint32_t" info="Maximum size of used memory" />
|
|
|
</typedef>
|
|
|
|
|
|
<!-- Memory Block Header + Object Header -->
|
|
|
@@ -608,9 +617,18 @@
|
|
|
<var name="ECB_En" type="uint8_t" value="0" />
|
|
|
<var name="PCB_En" type="uint8_t" value="0" />
|
|
|
<var name="QCB_En" type="uint8_t" value="0" />
|
|
|
+ <var name="MUC_En" type="uint8_t" value="0" />
|
|
|
|
|
|
<var name="StaticMp_En" type="uint8_t" value="0" />
|
|
|
|
|
|
+ <var name="MUC_Thread_En" type="uint8_t" value="0" />
|
|
|
+ <var name="MUC_Timer_En" type="uint8_t" value="0" />
|
|
|
+ <var name="MUC_EventFlags_En" type="uint8_t" value="0" />
|
|
|
+ <var name="MUC_Mutex_En" type="uint8_t" value="0" />
|
|
|
+ <var name="MUC_Semaphore_En" type="uint8_t" value="0" />
|
|
|
+ <var name="MUC_MemPool_En" type="uint8_t" value="0" />
|
|
|
+ <var name="MUC_MsgQueue_En" type="uint8_t" value="0" />
|
|
|
+
|
|
|
<var name="V_Major" type="uint32_t" value="0"/>
|
|
|
<var name="V_Minor" type="uint32_t" value="0"/>
|
|
|
<var name="V_Patch" type="uint32_t" value="0"/>
|
|
|
@@ -622,7 +640,7 @@
|
|
|
<calc cond="((os_Info.version / 10000000) == 5) && (os_Info.kernel_state > 0) && (os_Info.kernel_state < 5)">
|
|
|
RTX_En = 1;
|
|
|
</calc>
|
|
|
-
|
|
|
+
|
|
|
<calc cond="RTX_En">
|
|
|
V_Major = os_Info.version / 10000000;
|
|
|
V_Minor = (os_Info.version / 10000) % 1000;
|
|
|
@@ -713,36 +731,57 @@
|
|
|
<readlist name="mp_mqueue" cond="RTX_En && (QCB_Rd == 0) && os_Info.mpi_message_queue" type="osRtxMpInfo_t" offset="os_Info.mpi_message_queue" count="1" init="1"/>
|
|
|
<readlist name="QCB" cond="RTX_En && (QCB_Rd == 0) && os_Info.mpi_message_queue" type="osRtxMessageQueue_t" offset="mp_mqueue.block_base" count="mp_mqueue.max_blocks" />
|
|
|
|
|
|
- <!-- Read common memory pool block info (MEM) -->
|
|
|
- <readlist name="mem_head" cond="RTX_En && os_Info.mem_common" type="mem_head_t" offset="os_Info.mem_common" count="1"/>
|
|
|
- <readlist name="mem_bl" cond="RTX_En && os_Info.mem_common" type="mem_block_t" offset="os_Info.mem_common + 8" next="next"/>
|
|
|
+ <!-- Read stack memory header and block list (MEM) -->
|
|
|
+ <readlist name="mem_head_stack" cond="RTX_En && os_Config.mem_stack_addr" type="mem_head_t" offset="os_Config.mem_stack_addr" count="1"/>
|
|
|
+ <readlist name="mem_list_stack" cond="RTX_En && os_Config.mem_stack_addr" type="mem_block_t" offset="os_Config.mem_stack_addr + 8" next="next"/>
|
|
|
+
|
|
|
+ <calc cond="RTX_En && os_Config.mem_stack_addr"> mem_head_stack.max_used = mem_list_stack[mem_list_stack._count-1].len; </calc>
|
|
|
+
|
|
|
+ <!-- Read memory pool data memory header and block list (MEM) -->
|
|
|
+ <readlist name="mem_head_mp_data" cond="RTX_En && os_Config.mem_mp_data_addr" type="mem_head_t" offset="os_Config.mem_mp_data_addr" count="1"/>
|
|
|
+ <readlist name="mem_list_mp_data" cond="RTX_En && os_Config.mem_mp_data_addr" type="mem_block_t" offset="os_Config.mem_mp_data_addr + 8" next="next"/>
|
|
|
+
|
|
|
+ <calc cond="RTX_En && os_Config.mem_mp_data_addr"> mem_head_mp_data.max_used = mem_list_mp_data[mem_list_mp_data._count-1].len; </calc>
|
|
|
+
|
|
|
+ <!-- Read message queue data memory header and block list (MEM) -->
|
|
|
+ <readlist name="mem_head_mq_data" cond="RTX_En && os_Config.mem_mq_data_addr" type="mem_head_t" offset="os_Config.mem_mq_data_addr" count="1"/>
|
|
|
+ <readlist name="mem_list_mq_data" cond="RTX_En && os_Config.mem_mq_data_addr" type="mem_block_t" offset="os_Config.mem_mq_data_addr + 8" next="next"/>
|
|
|
+
|
|
|
+ <calc cond="RTX_En && os_Config.mem_mq_data_addr"> mem_head_mq_data.max_used = mem_list_mq_data[mem_list_mq_data._count-1].len; </calc>
|
|
|
|
|
|
- <list cond="mem_bl._count > 1" name="i" start="0" limit="mem_bl._count-1">
|
|
|
+ <!-- Read common memory header and block list (MEM) -->
|
|
|
+ <readlist name="mem_head_com" cond="RTX_En && os_Config.mem_common_addr" type="mem_head_t" offset="os_Config.mem_common_addr" count="1"/>
|
|
|
+ <readlist name="mem_list_com" cond="RTX_En && os_Config.mem_common_addr" type="mem_block_t" offset="os_Config.mem_common_addr + 8" next="next"/>
|
|
|
+
|
|
|
+ <calc cond="RTX_En && os_Config.mem_common_addr"> mem_head_com.max_used = mem_list_com[mem_list_com._count-1].len; </calc>
|
|
|
+
|
|
|
+ <!-- Extract control blocks located in the common memory -->
|
|
|
+ <list cond="mem_list_com._count > 1" name="i" start="0" limit="mem_list_com._count-1">
|
|
|
<calc>
|
|
|
- addr = mem_bl[i]._addr;
|
|
|
+ addr = mem_list_com[i]._addr;
|
|
|
addr += 8;
|
|
|
</calc>
|
|
|
|
|
|
<!-- Read Thread Control Block -->
|
|
|
- <readlist cond="(mem_bl[i].len & 1) && (mem_bl[i].id == 1)" name="TCB" type="osRtxThread_t" offset="addr" count="1" />
|
|
|
+ <readlist cond="(mem_list_com[i].len & 1) && (mem_list_com[i].id == 1)" name="TCB" type="osRtxThread_t" offset="addr" count="1" />
|
|
|
|
|
|
<!-- Read Timer Control Block -->
|
|
|
- <readlist cond="(mem_bl[i].len & 1) && (mem_bl[i].id == 2)" name="CCB" type="osRtxTimer_t" offset="addr" count="1" />
|
|
|
+ <readlist cond="(mem_list_com[i].len & 1) && (mem_list_com[i].id == 2)" name="CCB" type="osRtxTimer_t" offset="addr" count="1" />
|
|
|
|
|
|
<!-- Read EventFlags Control Block -->
|
|
|
- <readlist cond="(mem_bl[i].len & 1) && (mem_bl[i].id == 3)" name="ECB" type="osRtxEventFlags_t" offset="addr" count="1" />
|
|
|
+ <readlist cond="(mem_list_com[i].len & 1) && (mem_list_com[i].id == 3)" name="ECB" type="osRtxEventFlags_t" offset="addr" count="1" />
|
|
|
|
|
|
<!-- Read Mutex Control Block -->
|
|
|
- <readlist cond="(mem_bl[i].len & 1) && (mem_bl[i].id == 4)" name="MCB" type="osRtxMutex_t" offset="addr" count="1" />
|
|
|
+ <readlist cond="(mem_list_com[i].len & 1) && (mem_list_com[i].id == 4)" name="MCB" type="osRtxMutex_t" offset="addr" count="1" />
|
|
|
|
|
|
<!-- Read Semaphore Control Block -->
|
|
|
- <readlist cond="(mem_bl[i].len & 1) && (mem_bl[i].id == 5)" name="SCB" type="osRtxSemaphore_t" offset="addr" count="1" />
|
|
|
+ <readlist cond="(mem_list_com[i].len & 1) && (mem_list_com[i].id == 5)" name="SCB" type="osRtxSemaphore_t" offset="addr" count="1" />
|
|
|
|
|
|
<!-- Read MemoryPool Control Block -->
|
|
|
- <readlist cond="(mem_bl[i].len & 1) && (mem_bl[i].id == 6)" name="PCB" type="osRtxMemoryPool_t" offset="addr" count="1" />
|
|
|
+ <readlist cond="(mem_list_com[i].len & 1) && (mem_list_com[i].id == 6)" name="PCB" type="osRtxMemoryPool_t" offset="addr" count="1" />
|
|
|
|
|
|
<!-- Read MessageQueue Control Block -->
|
|
|
- <readlist cond="(mem_bl[i].len & 1) && (mem_bl[i].id == 8)" name="QCB" type="osRtxMessageQueue_t" offset="addr" count="1" />
|
|
|
+ <readlist cond="(mem_list_com[i].len & 1) && (mem_list_com[i].id == 8)" name="QCB" type="osRtxMessageQueue_t" offset="addr" count="1" />
|
|
|
</list>
|
|
|
|
|
|
<!-- Read thread wait list -->
|
|
|
@@ -763,7 +802,7 @@
|
|
|
<calc cond="TCB[i].state != 2">
|
|
|
sp = TCB[i].sp;
|
|
|
</calc>
|
|
|
-
|
|
|
+
|
|
|
<!-- Save current stack pointer -->
|
|
|
<calc>
|
|
|
TCB[i].stack_cur = sp;
|
|
|
@@ -1067,6 +1106,28 @@
|
|
|
</calc>
|
|
|
</list>
|
|
|
|
|
|
+ <!-- Read Object Memory Usage Counters (MUC) -->
|
|
|
+ <calc cond="__Symbol_exists ("osRtxThreadMemUsage")"> MUC_Thread_En = 1; </calc>
|
|
|
+ <calc cond="__Symbol_exists ("osRtxTimerMemUsage")"> MUC_Timer_En = 1; </calc>
|
|
|
+ <calc cond="__Symbol_exists ("osRtxEventFlagsMemUsage")"> MUC_EventFlags_En = 1; </calc>
|
|
|
+ <calc cond="__Symbol_exists ("osRtxMutexMemUsage")"> MUC_Mutex_En = 1; </calc>
|
|
|
+ <calc cond="__Symbol_exists ("osRtxSemaphoreMemUsage")"> MUC_Semaphore_En = 1; </calc>
|
|
|
+ <calc cond="__Symbol_exists ("osRtxMemoryPoolMemUsage")"> MUC_MemPool_En = 1; </calc>
|
|
|
+ <calc cond="__Symbol_exists ("osRtxMessageQueueMemUsage")"> MUC_MsgQueue_En = 1; </calc>
|
|
|
+
|
|
|
+ <calc>
|
|
|
+ MUC_En = MUC_Thread_En | MUC_Timer_En | MUC_EventFlags_En | MUC_Mutex_En | MUC_Semaphore_En | MUC_MemPool_En | MUC_MsgQueue_En;
|
|
|
+ </calc>
|
|
|
+
|
|
|
+ <readlist name="MUC_Thread" type="osRtxObjectMemUsage_t" symbol="osRtxThreadMemUsage" count="1" init="1" cond="MUC_Thread_En"/>
|
|
|
+ <readlist name="MUC_Timer" type="osRtxObjectMemUsage_t" symbol="osRtxTimerMemUsage" count="1" init="1" cond="MUC_Timer_En"/>
|
|
|
+ <readlist name="MUC_EventFlags" type="osRtxObjectMemUsage_t" symbol="osRtxEventFlagsMemUsage" count="1" init="1" cond="MUC_EventFlags_En"/>
|
|
|
+ <readlist name="MUC_Mutex" type="osRtxObjectMemUsage_t" symbol="osRtxMutexMemUsage" count="1" init="1" cond="MUC_Mutex_En"/>
|
|
|
+ <readlist name="MUC_Semaphore" type="osRtxObjectMemUsage_t" symbol="osRtxSemaphoreMemUsage" count="1" init="1" cond="MUC_Semaphore_En"/>
|
|
|
+ <readlist name="MUC_MemPool" type="osRtxObjectMemUsage_t" symbol="osRtxMemoryPoolMemUsage" count="1" init="1" cond="MUC_MemPool_En"/>
|
|
|
+ <readlist name="MUC_MsgQueue" type="osRtxObjectMemUsage_t" symbol="osRtxMessageQueueMemUsage" count="1" init="1" cond="MUC_MsgQueue_En"/>
|
|
|
+
|
|
|
+
|
|
|
<!-- Determine what to display -->
|
|
|
<list cond="TCB._count" name="i" start="0" limit="TCB._count">
|
|
|
<calc>TCB_En += TCB[i].cb_valid; </calc>
|
|
|
@@ -1103,12 +1164,12 @@
|
|
|
<item property="Kernel State" value="osKernelInactive" cond="RTX_En == 0"/>
|
|
|
<item property="Kernel State" value="%E[os_Info.kernel_state]" cond="RTX_En != 0"/>
|
|
|
<item property="Kernel Tick Count" value="%d[os_Info.kernel_tick]" cond="RTX_En != 0"/>
|
|
|
- <item property="Kernel Tick Frequency" value="%d[os_Config.tick_freq]" cond="RTX_En != 0" />
|
|
|
+ <item property="Kernel Tick Frequency" value="%d[os_Config.tick_freq]" cond="RTX_En != 0" />
|
|
|
<item property="Round Robin" value="Disabled" cond="(os_Config.robin_timeout == 0) && (RTX_En != 0)" />
|
|
|
<item property="Round Robin Tick Count" value="%d[os_Info.thread_robin_tick]" cond="(os_Config.robin_timeout > 0) && (RTX_En != 0)" />
|
|
|
<item property="Round Robin Timeout" value="%d[os_Config.robin_timeout]" cond="(os_Config.robin_timeout > 0) && (RTX_En != 0)" />
|
|
|
- <item property="Global Dynamic Memory" value="Not used" cond="(os_Config.mem_common_size == 0) && (RTX_En != 0)"/>
|
|
|
- <item property="Global Dynamic Memory" value="Base: %x[os_Config.mem_common_addr], Size: %d[os_Config.mem_common_size], Used: %d[mem_head.used]" cond="(os_Config.mem_common_size != 0) && (RTX_En != 0)"/>
|
|
|
+ <item property="Global Dynamic Memory" value="Not used" cond="(os_Config.mem_common_size == 0) && (RTX_En != 0)"/>
|
|
|
+ <item property="Global Dynamic Memory" value="Base: %x[mem_head_com._addr], Size: %d[mem_head_com.size], Used: %d[mem_head_com.used], Max used: %d[mem_head_com.max_used]" cond="(os_Config.mem_common_size != 0) && (RTX_En != 0)"/>
|
|
|
<item property="Stack Overrun Check" value="%t[stack_check ? "Enabled" : "Disabled"]" cond="RTX_En != 0"/>
|
|
|
<item property="Stack Usage Watermark" value="%t[stack_wmark ? "Enabled" : "Disabled"]" cond="RTX_En != 0"/>
|
|
|
<item property="Default Thread Stack Size" value="%d[os_Config.thread_stack_size]" cond="RTX_En != 0"/>
|
|
|
@@ -1119,33 +1180,43 @@
|
|
|
</list>
|
|
|
</item>
|
|
|
|
|
|
- <item property="Object specific Memory allocation" cond="StaticMp_En">
|
|
|
+ <item property="Object specific Memory allocation" value="" cond="StaticMp_En">
|
|
|
<item property="Thread objects" value="Used: %d[cfg_mp_thread.used_blocks], Max: %d[cfg_mp_thread.max_blocks]" cond="os_Config.mpi_thread">
|
|
|
- <item property="Control blocks" value="Base: %x[cfg_mp_thread.block_base], Size: %d[cfg_mp_thread.block_lim - cfg_mp_thread.block_base]"/>
|
|
|
- <item property="Default stack" value="Base: %x[cfg_mp_stack.block_base], Size: %d[cfg_mp_stack.block_lim - cfg_mp_stack.block_base]" cond="os_Config.mpi_stack"/>
|
|
|
- <item property="User stack" value="Base: %x[os_Config.mem_stack_addr], Size: %d[os_Config.mem_stack_size]" cond="os_Config.mem_stack_size"/>
|
|
|
+ <item property="Control blocks" value="Base: %x[cfg_mp_thread.block_base], Size: %d[cfg_mp_thread.block_lim - cfg_mp_thread.block_base], Used: %d[cfg_mp_thread.used_blocks * cfg_mp_thread.block_size]"/>
|
|
|
+ <item property="Default stack" value="Base: %x[cfg_mp_stack.block_base], Size: %d[cfg_mp_stack.block_lim - cfg_mp_stack.block_base], Used: %d[cfg_mp_stack.used_blocks * cfg_mp_stack.block_size]" cond="os_Config.mpi_stack"/>
|
|
|
+ <item property="User stack" value="Base: %x[mem_head_stack._addr], Size: %d[mem_head_stack.size], Used: %d[mem_head_stack.used], Max used: %d[mem_head_stack.max_used]" cond="os_Config.mem_stack_size"/>
|
|
|
</item>
|
|
|
<item property="Timer objects" value="Used: %d[cfg_mp_timer.used_blocks], Max: %d[cfg_mp_timer.max_blocks]" cond="os_Config.mpi_timer">
|
|
|
- <item property="Control blocks" value="Base: %x[cfg_mp_timer.block_base], Size: %d[cfg_mp_timer.block_lim - cfg_mp_timer.block_base]"/>
|
|
|
+ <item property="Control blocks" value="Base: %x[cfg_mp_timer.block_base], Size: %d[cfg_mp_timer.block_lim - cfg_mp_timer.block_base], Used: %d[cfg_mp_timer.used_blocks * cfg_mp_timer.block_size]"/>
|
|
|
</item>
|
|
|
<item property="Event Flags objects" value="Used: %d[cfg_mp_events.used_blocks], Max: %d[cfg_mp_events.max_blocks]" cond="os_Config.mpi_event_flags">
|
|
|
- <item property="Control blocks" value="Base: %x[cfg_mp_events.block_base], Size: %d[cfg_mp_events.block_lim - cfg_mp_events.block_base]"/>
|
|
|
+ <item property="Control blocks" value="Base: %x[cfg_mp_events.block_base], Size: %d[cfg_mp_events.block_lim - cfg_mp_events.block_base], Used: %d[cfg_mp_events.used_blocks * cfg_mp_events.block_size]"/>
|
|
|
</item>
|
|
|
<item property="Mutex objects" value="Used: %d[cfg_mp_mutex.used_blocks], Max: %d[cfg_mp_mutex.max_blocks]" cond="os_Config.mpi_mutex">
|
|
|
- <item property="Control blocks" value="Base: %x[cfg_mp_mutex.block_base], Size: %d[cfg_mp_mutex.block_lim - cfg_mp_mutex.block_base]"/>
|
|
|
+ <item property="Control blocks" value="Base: %x[cfg_mp_mutex.block_base], Size: %d[cfg_mp_mutex.block_lim - cfg_mp_mutex.block_base], Used: %d[cfg_mp_mutex.used_blocks * cfg_mp_mutex.block_size]"/>
|
|
|
</item>
|
|
|
<item property="Semaphore objects" value="Used: %d[cfg_mp_semaphore.used_blocks], Max: %d[cfg_mp_semaphore.max_blocks]" cond="os_Config.mpi_semaphore">
|
|
|
- <item property="Control blocks" value="Base: %x[cfg_mp_semaphore.block_base], Size: %d[cfg_mp_semaphore.block_lim - cfg_mp_semaphore.block_base]"/>
|
|
|
+ <item property="Control blocks" value="Base: %x[cfg_mp_semaphore.block_base], Size: %d[cfg_mp_semaphore.block_lim - cfg_mp_semaphore.block_base], Used: %d[cfg_mp_semaphore.used_blocks * cfg_mp_semaphore.block_size]"/>
|
|
|
</item>
|
|
|
<item property="Memory Pool objects" value="Used: %d[cfg_mp_mpool.used_blocks], Max: %d[cfg_mp_mpool.max_blocks]" cond="os_Config.mpi_memory_pool">
|
|
|
- <item property="Control blocks" value="Base: %x[cfg_mp_mpool.block_base], Size: %d[cfg_mp_mpool.block_lim - cfg_mp_mpool.block_base]"/>
|
|
|
- <item property="Data storage" value="Base: %x[os_Config.mem_mp_data_addr], Size: %d[os_Config.mem_mp_data_size]" cond="os_Config.mem_mp_data_size"/>
|
|
|
+ <item property="Control blocks" value="Base: %x[cfg_mp_mpool.block_base], Size: %d[cfg_mp_mpool.block_lim - cfg_mp_mpool.block_base], Used: %d[cfg_mp_mpool.used_blocks * cfg_mp_mpool.block_size]"/>
|
|
|
+ <item property="Data storage" value="Base: %x[mem_head_mp_data._addr], Size: %d[mem_head_mp_data.size], Used: %d[mem_head_mp_data.used], Max used: %d[mem_head_mp_data.max_used]" cond="os_Config.mem_mp_data_size"/>
|
|
|
</item>
|
|
|
<item property="Message Queue objects" value="Used: %d[cfg_mp_mqueue.used_blocks], Max: %d[cfg_mp_mqueue.max_blocks]" cond="os_Config.mpi_message_queue">
|
|
|
- <item property="Control blocks" value="Base: %x[cfg_mp_mqueue.block_base], Size: %d[cfg_mp_mqueue.block_lim - cfg_mp_mqueue.block_base]"/>
|
|
|
- <item property="Data storage" value="Base: %x[os_Config.mem_mq_data_addr], Size: %d[os_Config.mem_mq_data_size]" cond="os_Config.mem_mq_data_size"/>
|
|
|
+ <item property="Control blocks" value="Base: %x[cfg_mp_mqueue.block_base], Size: %d[cfg_mp_mqueue.block_lim - cfg_mp_mqueue.block_base], Used: %d[cfg_mp_mqueue.used_blocks * cfg_mp_mqueue.block_size]"/>
|
|
|
+ <item property="Data storage" value="Base: %x[mem_head_mq_data._addr], Size: %d[mem_head_mq_data.size], Used: %d[mem_head_mq_data.used], Max used: %d[mem_head_mq_data.max_used]" cond="os_Config.mem_mq_data_size"/>
|
|
|
</item>
|
|
|
</item>
|
|
|
+
|
|
|
+ <item property="Object Memory usage counters" value="" cond="(MUC_En != 0) && (RTX_En != 0)">
|
|
|
+ <item property="Thread objects" value="Alloc: %d[MUC_Thread.cnt_alloc], Free: %d[MUC_Thread.cnt_free], Max used: %d[MUC_Thread.max_used]" cond="MUC_Thread_En"/>
|
|
|
+ <item property="Timer objects" value="Alloc: %d[MUC_Timer.cnt_alloc], Free: %d[MUC_Timer.cnt_free], Max used: %d[MUC_Timer.max_used]" cond="MUC_Timer_En"/>
|
|
|
+ <item property="Event Flags objects" value="Alloc: %d[MUC_EventFlags.cnt_alloc], Free: %d[MUC_EventFlags.cnt_free], Max used: %d[MUC_EventFlags.max_used]" cond="MUC_EventFlags_En"/>
|
|
|
+ <item property="Mutex objects" value="Alloc: %d[MUC_Mutex.cnt_alloc], Free: %d[MUC_Mutex.cnt_free], Max used: %d[MUC_Mutex.max_used]" cond="MUC_Mutex_En"/>
|
|
|
+ <item property="Semaphore objects" value="Alloc: %d[MUC_Semaphore.cnt_alloc], Free: %d[MUC_Semaphore.cnt_free], Max used: %d[MUC_Semaphore.max_used]" cond="MUC_Semaphore_En"/>
|
|
|
+ <item property="Memory Pool objects" value="Alloc: %d[MUC_MemPool.cnt_alloc], Free: %d[MUC_MemPool.cnt_free], Max used: %d[MUC_MemPool.max_used]" cond="MUC_MemPool_En"/>
|
|
|
+ <item property="Message Queue objects" value="Alloc: %d[MUC_MsgQueue.cnt_alloc], Free: %d[MUC_MsgQueue.cnt_free], Max used: %d[MUC_MsgQueue.max_used]" cond="MUC_MsgQueue_En"/>
|
|
|
+ </item>
|
|
|
</item>
|
|
|
|
|
|
<!-- Threads -->
|