109 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			109 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
/****************************************************************************
 | 
						||
 | 
						||
Copyright(c) 2019 by Aerospace C.Power (Chongqing) Microelectronics. ALL RIGHTS RESERVED.
 | 
						||
 | 
						||
This Information is proprietary to Aerospace C.Power (Chongqing) Microelectronics and MAY NOT
 | 
						||
be copied by any method or incorporated into another program without
 | 
						||
the express written consent of Aerospace C.Power. This Information or any portion
 | 
						||
thereof remains the property of Aerospace C.Power. The Information contained herein
 | 
						||
is believed to be accurate and Aerospace C.Power assumes no responsibility or
 | 
						||
liability for its use in any way and conveys no license or title under
 | 
						||
any patent or copyright and makes no representation or warranty that this
 | 
						||
Information is free from patent or copyright infringement.
 | 
						||
 | 
						||
****************************************************************************/
 | 
						||
#ifndef IOT_BUSMON_H
 | 
						||
#define IOT_BUSMON_H
 | 
						||
 | 
						||
#include "busmon.h"
 | 
						||
 | 
						||
#ifdef __cplusplus
 | 
						||
extern "C" {
 | 
						||
#endif
 | 
						||
 | 
						||
/**
 | 
						||
 * @brief snapshot_rw_mode - snapshot监视类型
 | 
						||
 */
 | 
						||
enum snapshot_rw_mode
 | 
						||
{
 | 
						||
    SNAPSHOT_MONITOR_READ,  /* snapshot监视读操作 */
 | 
						||
    SNAPSHOT_MONITOR_WRITE  /* snapshot监视写操作 */
 | 
						||
};
 | 
						||
 | 
						||
/**
 | 
						||
 * @brief SnapshotConfig - snapshot配置参数
 | 
						||
*/
 | 
						||
typedef struct _snapshot_config_t
 | 
						||
{
 | 
						||
    uint16_t cpu;                       /* 需要监视的CPU(0/1) */
 | 
						||
    uint16_t rw_mode;                   /* 需要监视的类型(读(0)/写(1)) */
 | 
						||
    uint32_t mask;                      /* 需要使能的触发类型 */
 | 
						||
    uint32_t instruction_low_limit;     /* 指令总线区域读写监测下边界 */
 | 
						||
    uint32_t instruction_high_limit;    /* 指令总线区域读写监测上边界 */
 | 
						||
    uint32_t data_low_limit;            /* 数据总线区域读写监测下边界 */
 | 
						||
    uint32_t data_high_limit;           /* 数据总线区域读写监测上边界 */
 | 
						||
    uint32_t assert;                    /* 监视到触发时assert */
 | 
						||
}snapshot_config_t;
 | 
						||
 | 
						||
/**
 | 
						||
 * @brief iot_snapshot_run_check - 检测snapshot是否被中断调用
 | 
						||
 *        snapshot被中断调用是因为开启了 SNAPSHOT_MONITOR_DEBUG
 | 
						||
 * @return 0:snapshot未被调用 1:snapshot被调用
 | 
						||
 */
 | 
						||
uint8_t iot_snapshot_run_check();
 | 
						||
 | 
						||
/**
 | 
						||
 * @brief iot_snapshot_monitor_init - 初始化snapshot
 | 
						||
 */
 | 
						||
void iot_snapshot_monitor_init();
 | 
						||
 | 
						||
/**
 | 
						||
 * @brief iot_snapshot_monitor_config - 配置snapshot
 | 
						||
 * @param config : snapshot配置参数
 | 
						||
*/
 | 
						||
void IRAM_ATTR iot_snapshot_monitor_config(snapshot_config_t *config);
 | 
						||
 | 
						||
/**
 | 
						||
 * @brief iot_snapshot_monitor_enable - 使能snapshot
 | 
						||
 * 调用该函数后,snapshot开始工作
 | 
						||
 */
 | 
						||
void IRAM_ATTR iot_snapshot_monitor_enable();
 | 
						||
 | 
						||
/**
 | 
						||
 * @brief iot_snapshot_monitor_disable - 禁止snapshot
 | 
						||
 * 调用该函数后,snapshot停止工作
 | 
						||
 */
 | 
						||
void IRAM_ATTR iot_snapshot_monitor_disable();
 | 
						||
 | 
						||
/**
 | 
						||
 * @brief iot_snapshot_monitor_get_status - 获取snapshot的触发状态
 | 
						||
 * @return: 0 snapshot没有捕获到触发 非0 snapshot捕获到触发,位为1的值对应触发的类型
 | 
						||
 */
 | 
						||
uint32_t IRAM_ATTR iot_snapshot_monitor_get_status();
 | 
						||
 | 
						||
void iot_busmon_init();
 | 
						||
 | 
						||
void iot_busmon_cap();
 | 
						||
 | 
						||
void IRAM_ATTR iot_busmon_enable();
 | 
						||
 | 
						||
void IRAM_ATTR iot_busmon_disable();
 | 
						||
 | 
						||
uint8_t iot_busmon_callback(uint8_t mst,iot_isr_callback *callback,
 | 
						||
                            uint32_t bus_mon_laddr, uint32_t bus_mon_haddr,
 | 
						||
                            enum BUS_RANGE_MODE bus_mon_range) ;
 | 
						||
 | 
						||
#ifdef __cplusplus
 | 
						||
}
 | 
						||
#endif
 | 
						||
 | 
						||
#endif
 | 
						||
 | 
						||
 | 
						||
 | 
						||
 | 
						||
 | 
						||
 | 
						||
 | 
						||
 |