⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tx_el.h

📁 ARM入门的好帮手.包含了从简单到相对较复杂的程序.
💻 H
📖 第 1 页 / 共 3 页
字号:
/**************************************************************************/ 
/*                                                                        */ 
/*            Copyright (c) 1996-2000 by Express Logic Inc.               */ 
/*                                                                        */ 
/*  This software is copyrighted by and is the sole property of Express   */ 
/*  Logic, Inc.  All rights, title, ownership, or other interests         */ 
/*  in the software remain the property of Express Logic, Inc.  This      */ 
/*  software may only be used in accordance with the corresponding        */ 
/*  license agreement.  Any unauthorized use, duplication, transmission,  */ 
/*  distribution, or disclosure of this software is expressly forbidden.  */ 
/*                                                                        */
/*  This Copyright notice may not be removed or modified without prior    */ 
/*  written consent of Express Logic, Inc.                                */ 
/*                                                                        */ 
/*  Express Logic, Inc. reserves the right to modify this software        */ 
/*  without notice.                                                       */ 
/*                                                                        */ 
/*  Express Logic, Inc.                                                   */
/*  11440 West Bernardo Court               info@expresslogic.com         */
/*  Suite 366                               http://www.expresslogic.com   */
/*  San Diego, CA  92127                                                  */
/*                                                                        */
/**************************************************************************/


/**************************************************************************/
/**************************************************************************/
/**                                                                       */ 
/** ThreadX Component                                                     */
/**                                                                       */
/**   ThreadX/GHS Event Log (EL)                                          */
/**                                                                       */
/**************************************************************************/
/**************************************************************************/


/**************************************************************************/ 
/*                                                                        */ 
/*  COMPONENT DEFINITION                                   RELEASE        */ 
/*                                                                        */ 
/*    tx_el.h                                         ATMEL/Green Hills   */ 
/*                                                           3.0a         */ 
/*  AUTHOR                                                                */ 
/*                                                                        */ 
/*    William E. Lamie, Express Logic, Inc.                               */ 
/*                                                                        */ 
/*  DESCRIPTION                                                           */ 
/*                                                                        */ 
/*    This file defines the ThreadX event log functions for the GHS MULTI */ 
/*    EventAnalyzer.  It is assumed that tx_api.h and tx_port.h have      */ 
/*    already been included.                                              */
/*                                                                        */ 
/*  RELEASE HISTORY                                                       */ 
/*                                                                        */ 
/*    DATE              NAME                      DESCRIPTION             */ 
/*                                                                        */ 
/*  11-01-1999     William E. Lamie         Initial Version 3.0a          */ 
/*                                                                        */ 
/**************************************************************************/ 

#ifndef  TX_EL
#define  TX_EL


/* Define Event Log specific data definitions.  */

#define TX_EL_VERSION_ID                2           /* Event log version ID             */
#define TX_EL_HEADER_SIZE               24          /* Event log header size            */
#define TX_EL_TNIS                      16          /* Number of thread names supported */
#define TX_EL_TNI_ENTRY_SIZE            44          /* Thread name entries are 44 bytes */
#define TX_EL_TNI_NAME_SIZE             34          /* Thread name size in TNI          */
#define TX_EL_NO_MORE_TNI_ROOM          1           /* Error return from thread register*/
#define TX_EL_EVENT_SIZE                32          /* Number of bytes in each event    */
#define TX_EL_VALID_ENTRY               1           /* Valid log entry                  */ 
#define TX_EL_INVALID_ENTRY             0           /* Invalid log entry                */
#define TX_EL_TICKS_PER_SECOND          0xFA0000    /* Number of ticks per second in    */
                                                    /*   the time stamp source,         */
                                                    /*   32.768MHz/2                    */
#define TX_EL_TICKS_PER_INTERRUPT       0x10000     /* Update rate for lower time source*/


/* Define necessary offsets.  */

#define TX_EL_TNI_VALID_OFFSET          34
#define TX_EL_TNI_THREAD_ID_OFFSET      36
#define TX_EL_TNI_THREAD_PRIORITY_OFF   40
#define TX_EL_EVENT_TYPE_OFFSET         0
#define TX_EL_EVENT_SUBTYPE_OFFSET      2
#define TX_EL_EVENT_TIME_UPPER_OFFSET   4
#define TX_EL_EVENT_TIME_LOWER_OFFSET   8
#define TX_EL_EVENT_THREAD_OFFSET       12
#define TX_EL_EVENT_INFO_1_OFFSET       16
#define TX_EL_EVENT_INFO_2_OFFSET       20
#define TX_EL_EVENT_INFO_3_OFFSET       24
#define TX_EL_EVENT_INFO_4_OFFSET       28


/* Undefine constants that might be been defined previously by tx_api.h.  */

#undef TX_EL_INITIALIZE
#undef TX_EL_THREAD_REGISTER(a)
#undef TX_EL_THREAD_STATUS_CHANGE_INSERT(a, b)
#undef TX_EL_BYTE_ALLOCATE_INSERT
#undef TX_EL_BYTE_POOL_CREATE_INSERT
#undef TX_EL_BYTE_POOL_DELETE_INSERT
#undef TX_EL_BYTE_RELEASE_INSERT
#undef TX_EL_BLOCK_ALLOCATE_INSERT
#undef TX_EL_BLOCK_POOL_CREATE_INSERT
#undef TX_EL_BLOCK_POOL_DELETE_INSERT
#undef TX_EL_BLOCK_RELEASE_INSERT
#undef TX_EL_EVENT_FLAGS_CREATE_INSERT
#undef TX_EL_EVENT_FLAGS_DELETE_INSERT
#undef TX_EL_EVENT_FLAGS_GET_INSERT
#undef TX_EL_EVENT_FLAGS_SET_INSERT
#undef TX_EL_INTERRUPT_CONTROL_INSERT
#undef TX_EL_QUEUE_CREATE_INSERT
#undef TX_EL_QUEUE_DELETE_INSERT
#undef TX_EL_QUEUE_FLUSH_INSERT
#undef TX_EL_QUEUE_RECEIVE_INSERT
#undef TX_EL_QUEUE_SEND_INSERT
#undef TX_EL_SEMAPHORE_CREATE_INSERT
#undef TX_EL_SEMAPHORE_DELETE_INSERT
#undef TX_EL_SEMAPHORE_GET_INSERT
#undef TX_EL_SEMAPHORE_PUT_INSERT
#undef TX_EL_THREAD_CREATE_INSERT
#undef TX_EL_THREAD_DELETE_INSERT
#undef TX_EL_THREAD_IDENTIFY_INSERT
#undef TX_EL_THREAD_PREEMPTION_CHANGE_INSERT
#undef TX_EL_THREAD_PRIORITY_CHANGE_INSERT
#undef TX_EL_THREAD_RELINQUISH_INSERT
#undef TX_EL_THREAD_RESUME_INSERT
#undef TX_EL_THREAD_SLEEP_INSERT
#undef TX_EL_THREAD_SUSPEND_INSERT
#undef TX_EL_THREAD_TERMINATE_INSERT
#undef TX_EL_THREAD_TIME_SLICE_CHANGE_INSERT
#undef TX_EL_TIME_GET_INSERT
#undef TX_EL_TIME_SET_INSERT
#undef TX_EL_TIMER_ACTIVATE_INSERT
#undef TX_EL_TIMER_CHANGE_INSERT
#undef TX_EL_TIMER_CREATE_INSERT
#undef TX_EL_TIMER_DEACTIVATE_INSERT
#undef TX_EL_TIMER_DELETE_INSERT



/* Define Event Types.  */

#define TX_EL_THREAD_CHANGE             1
#define TX_EL_INTERRUPT                 2
#define TX_EL_THREADX_CALL              3
#define TX_EL_USER_EVENT                4
#define TX_EL_THREAD_STATUS_CHANGE      5
#define TX_EL_REFRESH                   6           /* Not implemented                  */
#define TX_EL_TIMER                     7           /* Not implemented                  */
#define TX_EL_TIMESOURCE_DELTA          8           /* Not implemented                  */


/* Define TX_EL_THREADX_CALL event sub-types.  */

#define TX_EL_BYTE_ALLOCATE             0
#define TX_EL_BYTE_POOL_CREATE          1
#define TX_EL_BYTE_POOL_DELETE          2
#define TX_EL_BYTE_RELEASE              3
#define TX_EL_BLOCK_ALLOCATE            4
#define TX_EL_BLOCK_POOL_CREATE         5
#define TX_EL_BLOCK_POOL_DELETE         6
#define TX_EL_BLOCK_RELEASE             7
#define TX_EL_EVENT_FLAGS_CREATE        8
#define TX_EL_EVENT_FLAGS_DELETE        9
#define TX_EL_EVENT_FLAGS_GET           10
#define TX_EL_EVENT_FLAGS_SET           11
#define TX_EL_INTERRUPT_CONTROL         12
#define TX_EL_QUEUE_CREATE              13
#define TX_EL_QUEUE_DELETE              14
#define TX_EL_QUEUE_FLUSH               15
#define TX_EL_QUEUE_RECEIVE             16
#define TX_EL_QUEUE_SEND                17
#define TX_EL_SEMAPHORE_CREATE          18
#define TX_EL_SEMAPHORE_DELETE          19
#define TX_EL_SEMAPHORE_GET             20
#define TX_EL_SEMAPHORE_PUT             21
#define TX_EL_THREAD_CREATE             22
#define TX_EL_THREAD_DELETE             23
#define TX_EL_THREAD_IDENTIFY           24
#define TX_EL_THREAD_PREEMPTION_CHANGE  25
#define TX_EL_THREAD_PRIORITY_CHANGE    26
#define TX_EL_THREAD_RELINQUISH         27
#define TX_EL_THREAD_RESUME             28
#define TX_EL_THREAD_SLEEP              29
#define TX_EL_THREAD_SUSPEND            30
#define TX_EL_THREAD_TERMINATE          31
#define TX_EL_THREAD_TIME_SLICE_CHANGE  32
#define TX_EL_TIME_GET                  33
#define TX_EL_TIME_SET                  34
#define TX_EL_TIMER_ACTIVATE            35
#define TX_EL_TIMER_CHANGE              36
#define TX_EL_TIMER_CREATE              37
#define TX_EL_TIMER_DEACTIVATE          38
#define TX_EL_TIMER_DELETE              39


/* Define ThreadX sub-types.  */

#define TX_EL_INTERRUPT_SUB_TYPE        1
#define TX_EL_END_OF_INTERRUPT          3


/* Define event logging filters, which may be used by the application program to
   dynamically enable/disable events in run-time.  */

#define TX_EL_FILTER_STATUS_CHANGE      0x0001
#define TX_EL_FILTER_INTERRUPTS         0x0002
#define TX_EL_FILTER_THREAD_CALLS       0x0004
#define TX_EL_FILTER_TIMER_CALLS        0x0008
#define TX_EL_FILTER_EVENT_FLAG_CALLS   0x0010
#define TX_EL_FILTER_SEMAPHORE_CALLS    0x0020
#define TX_EL_FILTER_QUEUE_CALLS        0x0040
#define TX_EL_FILTER_BLOCK_CALLS        0x0080
#define TX_EL_FILTER_BYTE_CALLS         0x0100
#define TX_EL_FILTER_ALL_EVENTS         0xFFFF
#define TX_EL_ENABLE_ALL_EVENTS         0x0000


/* Define filter macros that are inserted in-line with the other macros below.  */

#ifdef  TX_ENABLE_EVENT_FILTERS     
#define TX_EL_NO_STATUS_EVENTS      if (!(_tx_el_event_filter & TX_EL_FILTER_STATUS_CHANGE)) {
#define TX_EL_NO_INTERRUPT_EVENTS   if (!(_tx_el_event_filter & TX_EL_FILTER_INTERRUPTS)) {
#define TX_EL_NO_THREAD_EVENTS      if (!(_tx_el_event_filter & TX_EL_FILTER_THREAD_CALLS)) {
#define TX_EL_NO_TIMER_EVENTS       if (!(_tx_el_event_filter & TX_EL_FILTER_TIMER_CALLS)) {
#define TX_EL_NO_EVENT_FLAG_EVENTS  if (!(_tx_el_event_filter & TX_EL_FILTER_EVENT_FLAG_CALLS)) {
#define TX_EL_NO_SEMAPHORE_EVENTS   if (!(_tx_el_event_filter & TX_EL_FILTER_EVENT_FLAG_CALLS)) {
#define TX_EL_NO_QUEUE_EVENTS       if (!(_tx_el_event_filter & TX_EL_FILTER_QUEUE_CALLS)) {
#define TX_EL_NO_BLOCK_EVENTS       if (!(_tx_el_event_filter & TX_EL_FILTER_BLOCK_CALLS)) {
#define TX_EL_NO_BYTE_EVENTS        if (!(_tx_el_event_filter & TX_EL_FILTER_BYTE_CALLS)) {
#define TX_EL_END_FILTER            }
#else
#define TX_EL_NO_STATUS_EVENTS
#define TX_EL_NO_INTERRUPT_EVENTS
#define TX_EL_NO_THREAD_EVENTS
#define TX_EL_NO_TIMER_EVENTS
#define TX_EL_NO_EVENT_FLAG_EVENTS
#define TX_EL_NO_SEMAPHORE_EVENTS
#define TX_EL_NO_QUEUE_EVENTS
#define TX_EL_NO_BLOCK_EVENTS
#define TX_EL_NO_BYTE_EVENTS

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -