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
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 |