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

📄 tracer.h

📁 realview下的一个arm9的bootloader烧录器.支持norflash读写
💻 H
字号:
/******************************************************************************* * Copyright Statement: * -------------------- * This software is protected by Copyright and the information contained herein * is confidential.  The software may not be copied and the information * contained herein may not be used or disclosed except with the written * permission of Infomax Corp. * * DESCRIPTION:  Header file for tracer * AUTHOR:       Bo-Hung Wu * BEGIN DATE:   Oct. 18, 2007       * LAST MODIFICATION:  *****************************************************************************/ #ifndef TRACER_H#define TRACER_H/* Header files */#include "magic_env.h"#include "common_var_types.h"#include "magic_reg_defs.h"#include "uart.h"/* Constant/Marco */#define TRACER_ADDRESS_SET_REPORT_SINGLE_MODE     0#define TRACER_ADDRESS_SET_REPORT_COUNTING_MODE   1#define TRACER_ADDRESS_SET_REPORT_DATA_WRITE_MODE  2#define TRACER_ADDRESS_SET_REPORT_DATA_READ_MODE 3#define TRACER_ADDRESS_SET_ID_0 0 #define TRACER_ADDRESS_SET_ID_1 1#define TRACER_ADDRESS_SET_ID_2 2#define TRACER_ADDRESS_SET_ID_3 3#define TRACER_ADDRESS_SET_ID_4 4#define TRACER_ADDRESS_SET_ID_5 5#define TRACER_ADDRESS_SET_ID_6 6#define TRACER_ADDRESS_SET_ID_7 7#define TRACER_INTERRUPT_TRIGGER_ID_NONE  (0x0 << 0 )#define TRACER_INTERRUPT_TRIGGER_ID_KEY   (0x1 << 0 )#define TRACER_INTERRUPT_TRIGGER_ID_HIF   (0x1 << 1 )#define TRACER_INTERRUPT_TRIGGER_ID_GPT   (0x1 << 2 )#define TRACER_INTERRUPT_TRIGGER_ID_WDT   (0x1 << 3 )#define TRACER_INTERRUPT_TRIGGER_ID_XITR  (0x1 << 4 )#define TRACER_INTERRUPT_TRIGGER_ID_UART  (0x1 << 5 )#define TRACER_INTERRUPT_TRIGGER_ID_CMD   (0x1 << 6 )#define TRACER_INTERRUPT_TRIGGER_ID_SIM   (0x1 << 7 )#define TRACER_INTERRUPT_TRIGGER_ID_GPDMA (0x1 << 8 )#define TRACER_INTERRUPT_TRIGGER_ID_ABB   (0x1 << 9 )#define TRACER_INTERRUPT_TRIGGER_ID_AHBM  (0x1 << 10)#define TRACER_INTERRUPT_TRIGGER_ID_APBP  (0x1 << 11)#define TRACER_INTERRUPT_TRIGGER_ID_DRX   (0x1 << 12)#define TRACER_INTERRUPT_TRIGGER_ID_AUDIO (0x1 << 13)#define TRACER_INTERRUPT_TRIGGER_ID_USB   (0x1 << 14)#ifdef MCU_CORE_ARM_7#define USE_ARM7_TRACER#elif defined MCU_CORE_ARM_9#define USE_ARM9_TRACER#else#error "UNKNOW MCU_CORE"#endif#ifdef USE_ARM7_TRACER#define ARM_TRACER_BASE                   ARM7_TRACER_BASE#define TRACER_PORT_ID UART_PORT_0#elif defined USE_ARM9_TRACER#define ARM_TRACER_BASE                   ARM9_TRACER_BASE#define TRACER_PORT_ID UART_PORT_2#else #error "UNKNOWN TRACER DEVICE(Shall be ARM7 or ARM9)"#endif#define ARM_TRACER_ENABLE_REG             ( (volatile unsigned int *)(ARM_TRACER_BASE+0x0) )#define ARM_TRACER_TIME_STAMP_REG         ( (volatile unsigned int *)(ARM_TRACER_BASE+0x10) )#define ARM_TRACER_TIME_STAMP_CNT_REG     ( (volatile unsigned int *)(ARM_TRACER_BASE+0x14) )#define ARM_TRACER_WRAP_AROUND_ENABLE_REG ( (volatile unsigned int *)(ARM_TRACER_BASE+0x1C) )#define ARM_TRACER_SOFTWARE_ID_REG        ( (volatile unsigned int *)(ARM_TRACER_BASE+0x20) )#define ARM_TRACER_SELECT_INTERRUPT_REG   ( (volatile unsigned int *)(ARM_TRACER_BASE+0x30) )#define ARM_TRACER_ADDRESS_INDIVIDUAL_FEATURE_REG_SET_0 ( (unsigned int *)(ARM_TRACER_BASE+0x100) )#define ARM_TRACER_ADDRESS_OPERATION_MODE_REG_SET_0     ( (unsigned int *)(ARM_TRACER_BASE+0x104) )#define ARM_TRACER_ADDRESS_COMPARE_REG_SET_0            ( (unsigned int *)(ARM_TRACER_BASE+0x108) )#define ARM_TRACER_ADDRESS_SET_0_INDIVIDUAL_FEATURE_REG ( (volatile unsigned int *)(ARM_TRACER_BASE+0x100) )#define ARM_TRACER_ADDRESS_SET_0_OPERATION_MODE_REG     ( (volatile unsigned int *)(ARM_TRACER_BASE+0x104) )#define ARM_TRACER_ADDRESS_SET_0_COMPARE_REG            ( (volatile unsigned int *)(ARM_TRACER_BASE+0x108) )#define ARM_TRACER_ADDRESS_SET_0_MASK_REG               ( (volatile unsigned int *)(ARM_TRACER_BASE+0x10C) )#define ARM_TRACER_ADDRESS_SET_0_ACCESS_CYCLE_REG       ( (volatile unsigned int *)(ARM_TRACER_BASE+0x110) )#define ARM_TRACER_ADDRESS_SET_0_ACCESS_TIMES_REG       ( (volatile unsigned int *)(ARM_TRACER_BASE+0x114) )#define ARM_TRACER_ADDRESS_SET_0_READ_TIMES_REG         ( (volatile unsigned int *)(ARM_TRACER_BASE+0x118) )#define ARM_TRACER_ADDRESS_SET_0_WRITE_TIMES_REG        ( (volatile unsigned int *)(ARM_TRACER_BASE+0x11C) )#define ARM_TRACER_ADDRESS_SET_0_DATA_LOG_REG           ( (volatile unsigned int *)(ARM_TRACER_BASE+0x120) )#define ARM_TRACER_ADDRESS_INDIVIDUAL_FEATURE_REG_SET_1 ( (unsigned int *)(ARM_TRACER_BASE+0x200) )#define ARM_TRACER_ADDRESS_SET_1_INDIVIDUAL_FEATURE_REG ( (volatile unsigned int *)(ARM_TRACER_BASE+0x200) )#define ARM_TRACER_ADDRESS_SET_1_OPERATION_MODE_REG     ( (volatile unsigned int *)(ARM_TRACER_BASE+0x204) )#define ARM_TRACER_ADDRESS_SET_1_COMPARE_REG            ( (volatile unsigned int *)(ARM_TRACER_BASE+0x208) )#define ARM_TRACER_ADDRESS_SET_1_MASK_REG               ( (volatile unsigned int *)(ARM_TRACER_BASE+0x20C) )#define ARM_TRACER_ADDRESS_SET_1_ACCESS_CYCLE_REG       ( (volatile unsigned int *)(ARM_TRACER_BASE+0x210) )#define ARM_TRACER_ADDRESS_SET_1_ACCESS_TIMES_REG       ( (volatile unsigned int *)(ARM_TRACER_BASE+0x214) )#define ARM_TRACER_ADDRESS_SET_1_READ_TIMES_REG         ( (volatile unsigned int *)(ARM_TRACER_BASE+0x218) )#define ARM_TRACER_ADDRESS_SET_1_WRITE_TIMES_REG        ( (volatile unsigned int *)(ARM_TRACER_BASE+0x21C) )#define ARM_TRACER_ADDRESS_SET_1_DATA_LOG_REG           ( (volatile unsigned int *)(ARM_TRACER_BASE+0x220) )#define ARM_TRACER_ADDRESS_INDIVIDUAL_FEATURE_REG_SET_2 ( (unsigned int *)(ARM_TRACER_BASE+0x300) )#define ARM_TRACER_ADDRESS_SET_2_INDIVIDUAL_FEATURE_REG ( (volatile unsigned int *)(ARM_TRACER_BASE+0x300) )#define ARM_TRACER_ADDRESS_SET_2_OPERATION_MODE_REG     ( (volatile unsigned int *)(ARM_TRACER_BASE+0x304) )#define ARM_TRACER_ADDRESS_SET_2_COMPARE_REG            ( (volatile unsigned int *)(ARM_TRACER_BASE+0x308) )#define ARM_TRACER_ADDRESS_SET_2_MASK_REG               ( (volatile unsigned int *)(ARM_TRACER_BASE+0x30C) )#define ARM_TRACER_ADDRESS_SET_2_ACCESS_CYCLE_REG       ( (volatile unsigned int *)(ARM_TRACER_BASE+0x310) )#define ARM_TRACER_ADDRESS_SET_2_ACCESS_TIMES_REG       ( (volatile unsigned int *)(ARM_TRACER_BASE+0x314) )#define ARM_TRACER_ADDRESS_SET_2_READ_TIMES_REG         ( (volatile unsigned int *)(ARM_TRACER_BASE+0x318) )#define ARM_TRACER_ADDRESS_SET_2_WRITE_TIMES_REG        ( (volatile unsigned int *)(ARM_TRACER_BASE+0x31C) )#define ARM_TRACER_ADDRESS_SET_2_DATA_LOG_REG           ( (volatile unsigned int *)(ARM_TRACER_BASE+0x320) )#define ARM_TRACER_ADDRESS_INDIVIDUAL_FEATURE_REG_SET_3 ( (unsigned int *)(ARM_TRACER_BASE+0x400) )#define ARM_TRACER_ADDRESS_SET_3_INDIVIDUAL_FEATURE_REG ( (volatile unsigned int *)(ARM_TRACER_BASE+0x400) )#define ARM_TRACER_ADDRESS_SET_3_OPERATION_MODE_REG     ( (volatile unsigned int *)(ARM_TRACER_BASE+0x404) )#define ARM_TRACER_ADDRESS_SET_3_COMPARE_REG            ( (volatile unsigned int *)(ARM_TRACER_BASE+0x408) )#define ARM_TRACER_ADDRESS_SET_3_MASK_REG               ( (volatile unsigned int *)(ARM_TRACER_BASE+0x40C) )#define ARM_TRACER_ADDRESS_SET_3_ACCESS_CYCLE_REG       ( (volatile unsigned int *)(ARM_TRACER_BASE+0x410) )#define ARM_TRACER_ADDRESS_SET_3_ACCESS_TIMES_REG       ( (volatile unsigned int *)(ARM_TRACER_BASE+0x414) )#define ARM_TRACER_ADDRESS_SET_3_READ_TIMES_REG         ( (volatile unsigned int *)(ARM_TRACER_BASE+0x418) )#define ARM_TRACER_ADDRESS_SET_3_WRITE_TIMES_REG        ( (volatile unsigned int *)(ARM_TRACER_BASE+0x41C) )#define ARM_TRACER_ADDRESS_SET_3_DATA_LOG_REG           ( (volatile unsigned int *)(ARM_TRACER_BASE+0x420) )#define ARM_TRACER_ADDRESS_INDIVIDUAL_FEATURE_REG_SET_4 ( (unsigned int *)(ARM_TRACER_BASE+0x500) )#define ARM_TRACER_ADDRESS_SET_4_INDIVIDUAL_FEATURE_REG ( (volatile unsigned int *)(ARM_TRACER_BASE+0x500) )#define ARM_TRACER_ADDRESS_SET_4_OPERATION_MODE_REG     ( (volatile unsigned int *)(ARM_TRACER_BASE+0x504) )#define ARM_TRACER_ADDRESS_SET_4_COMPARE_REG            ( (volatile unsigned int *)(ARM_TRACER_BASE+0x508) )#define ARM_TRACER_ADDRESS_SET_4_MASK_REG               ( (volatile unsigned int *)(ARM_TRACER_BASE+0x50C) )#define ARM_TRACER_ADDRESS_SET_4_ACCESS_CYCLE_REG       ( (volatile unsigned int *)(ARM_TRACER_BASE+0x510) )#define ARM_TRACER_ADDRESS_SET_4_ACCESS_TIMES_REG       ( (volatile unsigned int *)(ARM_TRACER_BASE+0x514) )#define ARM_TRACER_ADDRESS_SET_4_READ_TIMES_REG         ( (volatile unsigned int *)(ARM_TRACER_BASE+0x518) )#define ARM_TRACER_ADDRESS_SET_4_WRITE_TIMES_REG        ( (volatile unsigned int *)(ARM_TRACER_BASE+0x51C) )#define ARM_TRACER_ADDRESS_SET_4_DATA_LOG_REG           ( (volatile unsigned int *)(ARM_TRACER_BASE+0x520) )#define ARM_TRACER_ADDRESS_INDIVIDUAL_FEATURE_REG_SET_5 ( (unsigned int *)(ARM_TRACER_BASE+0x600) )#define ARM_TRACER_ADDRESS_SET_5_INDIVIDUAL_FEATURE_REG ( (volatile unsigned int *)(ARM_TRACER_BASE+0x600) )#define ARM_TRACER_ADDRESS_SET_5_OPERATION_MODE_REG     ( (volatile unsigned int *)(ARM_TRACER_BASE+0x604) )#define ARM_TRACER_ADDRESS_SET_5_COMPARE_REG            ( (volatile unsigned int *)(ARM_TRACER_BASE+0x608) )#define ARM_TRACER_ADDRESS_SET_5_MASK_REG               ( (volatile unsigned int *)(ARM_TRACER_BASE+0x60C) )#define ARM_TRACER_ADDRESS_SET_5_ACCESS_CYCLE_REG       ( (volatile unsigned int *)(ARM_TRACER_BASE+0x610) )#define ARM_TRACER_ADDRESS_SET_5_ACCESS_TIMES_REG       ( (volatile unsigned int *)(ARM_TRACER_BASE+0x614) )#define ARM_TRACER_ADDRESS_SET_5_READ_TIMES_REG         ( (volatile unsigned int *)(ARM_TRACER_BASE+0x618) )#define ARM_TRACER_ADDRESS_SET_5_WRITE_TIMES_REG        ( (volatile unsigned int *)(ARM_TRACER_BASE+0x61C) )#define ARM_TRACER_ADDRESS_SET_5_DATA_LOG_REG           ( (volatile unsigned int *)(ARM_TRACER_BASE+0x620) )#define ARM_TRACER_ADDRESS_INDIVIDUAL_FEATURE_REG_SET_6 ( (unsigned int *)(ARM_TRACER_BASE+0x700) )#define ARM_TRACER_ADDRESS_SET_6_INDIVIDUAL_FEATURE_REG ( (volatile unsigned int *)(ARM_TRACER_BASE+0x700) )#define ARM_TRACER_ADDRESS_SET_6_OPERATION_MODE_REG     ( (volatile unsigned int *)(ARM_TRACER_BASE+0x704) )#define ARM_TRACER_ADDRESS_SET_6_COMPARE_REG            ( (volatile unsigned int *)(ARM_TRACER_BASE+0x708) )#define ARM_TRACER_ADDRESS_SET_6_MASK_REG               ( (volatile unsigned int *)(ARM_TRACER_BASE+0x70C) )#define ARM_TRACER_ADDRESS_SET_6_ACCESS_CYCLE_REG       ( (volatile unsigned int *)(ARM_TRACER_BASE+0x710) )#define ARM_TRACER_ADDRESS_SET_6_ACCESS_TIMES_REG       ( (volatile unsigned int *)(ARM_TRACER_BASE+0x714) )#define ARM_TRACER_ADDRESS_SET_6_READ_TIMES_REG         ( (volatile unsigned int *)(ARM_TRACER_BASE+0x718) )#define ARM_TRACER_ADDRESS_SET_6_WRITE_TIMES_REG        ( (volatile unsigned int *)(ARM_TRACER_BASE+0x71C) )#define ARM_TRACER_ADDRESS_SET_6_DATA_LOG_REG           ( (volatile unsigned int *)(ARM_TRACER_BASE+0x720) )#define ARM_TRACER_ADDRESS_INDIVIDUAL_FEATURE_REG_SET_7 ( (unsigned int *)(ARM_TRACER_BASE+0x800) )#define ARM_TRACER_ADDRESS_SET_7_INDIVIDUAL_FEATURE_REG ( (volatile unsigned int *)(ARM_TRACER_BASE+0x800) )#define ARM_TRACER_ADDRESS_SET_7_OPERATION_MODE_REG     ( (volatile unsigned int *)(ARM_TRACER_BASE+0x804) )#define ARM_TRACER_ADDRESS_SET_7_COMPARE_REG            ( (volatile unsigned int *)(ARM_TRACER_BASE+0x808) )#define ARM_TRACER_ADDRESS_SET_7_MASK_REG               ( (volatile unsigned int *)(ARM_TRACER_BASE+0x80C) )#define ARM_TRACER_ADDRESS_SET_7_ACCESS_CYCLE_REG       ( (volatile unsigned int *)(ARM_TRACER_BASE+0x810) )#define ARM_TRACER_ADDRESS_SET_7_ACCESS_TIMES_REG       ( (volatile unsigned int *)(ARM_TRACER_BASE+0x814) )#define ARM_TRACER_ADDRESS_SET_7_READ_TIMES_REG         ( (volatile unsigned int *)(ARM_TRACER_BASE+0x818) )#define ARM_TRACER_ADDRESS_SET_7_WRITE_TIMES_REG        ( (volatile unsigned int *)(ARM_TRACER_BASE+0x81C) )#define ARM_TRACER_ADDRESS_SET_7_DATA_LOG_REG           ( (volatile unsigned int *)(ARM_TRACER_BASE+0x820) )/* Structure/Union/Enum/Typedef */typedef struct tracer_init_conf_data_S{    UINT32 timestamp_resolution;} tracer_init_conf_data_T;typedef struct tracer_address_report_conf_data_S{    UINT16 operation_mode;    UINT32 address_set;    UINT32 address_set_mask;} tracer_address_report_conf_data_T;/* Function Prototypes *//** @Desc    Description for function_name @Param parameter 1    Put parameter 1 description here @Param parameter 2    Put parameter 2 description here @Return    Return value 1 and it description  @Return    Return value 1 and it description */void tracer_enable(void);void tracer_disable(void);void tracer_init(tracer_init_conf_data_T *tracer_init_conf_data_param_P);void tracer_enable_wrap_around_report(void);void tracer_disable_wrap_around_report(void);void tracer_send_software_report(UINT32 sw_id_param);void tracer_configure_int_report(UINT32 intr_mask_param);void tracer_configure_address_trigger_report(UINT8 address_set_report_id_param, tracer_address_report_conf_data_T *tracer_address_report_conf_data_param);void tracer_enable_address_trigger_report(UINT8 address_set_report_id_param);void tracer_disable_address_trigger_report(UINT8 address_set_report_id_param);#endif /* #ifndef */

⌨️ 快捷键说明

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