109 lines
3.3 KiB
C
109 lines
3.3 KiB
C
|
/****************************************************************************
|
|||
|
|
|||
|
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
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|