98 lines
3.3 KiB
C
98 lines
3.3 KiB
C
#ifndef __DEBUG_H__
|
|
#define __DEBUG_H__
|
|
|
|
|
|
#define _MPU_WR_SFR_EN do{JL_MPU->WREN = 0xE7;}while(0)
|
|
#define _MPU_WR_EN JL_MPU->WREN
|
|
#define _DEBUG_MSG_CLR JL_MPU->MSG_CLR
|
|
|
|
#define _DCU_CON JL_DCU->CON
|
|
#define _DCU_EMU_CON JL_DCU->EMU_CON
|
|
#define _DCU_EMU_MSG JL_DCU->EMU_MSG
|
|
#define _DCU_EMU_ID JL_DCU->EMU_ID
|
|
#define _DCU_CMD_CON JL_DCU->CMD_CON
|
|
#define _DCU_CMD_BEG JL_DCU->CMD_BEG
|
|
#define _DCU_CMD_END JL_DCU->CMD_END
|
|
#define _DCU_CNT_RACK JL_DCU->CNT_RACK
|
|
#define _DCU_CNT_UNACK JL_DCU->CNT_UNACK
|
|
|
|
#define _DSP_PC_LIML0 q32DSP(0)->LIM_PC0_L
|
|
#define _DSP_PC_LIMH0 q32DSP(0)->LIM_PC0_H
|
|
#define _DSP_PC_LIML1 q32DSP(0)->LIM_PC1_L
|
|
#define _DSP_PC_LIMH1 q32DSP(0)->LIM_PC1_H
|
|
#define _DSP_PC_LIML2 q32DSP(0)->LIM_PC2_L
|
|
#define _DSP_PC_LIMH2 q32DSP(0)->LIM_PC2_H
|
|
#define _EMU_CON q32DSP(0)->EMU_CON
|
|
#define _EMU_MSG q32DSP(0)->EMU_MSG
|
|
#define _EMU_SSP_H q32DSP(0)->EMU_SSP_H
|
|
#define _EMU_SSP_L q32DSP(0)->EMU_SSP_L
|
|
#define _EMU_USP_H q32DSP(0)->EMU_USP_H
|
|
#define _EMU_USP_L q32DSP(0)->EMU_USP_L
|
|
#define _ETM_CON q32DSP(0)->ETM_CON
|
|
#define _ESU_CON q32DSP(0)->ESU_CON
|
|
|
|
#define _ICU_CON q32DSP_icu(0)->CON
|
|
#define _ICU_EMU_CON q32DSP_icu(0)->EMU_CON
|
|
#define _ICU_EMU_MSG q32DSP_icu(0)->EMU_MSG
|
|
#define _ICU_EMU_ID q32DSP_icu(0)->EMU_ID
|
|
#define _ICU_CMD_CON q32DSP_icu(0)->CMD_CON
|
|
#define _ICU_CMD_BEG q32DSP_icu(0)->CMD_BEG
|
|
#define _ICU_CMD_END q32DSP_icu(0)->CMD_END
|
|
#define _ICU_CNT_RACK q32DSP_icu(0)->CNT_RACK
|
|
#define _ICU_CNT_UNACK q32DSP_icu(0)->CNT_UNACK
|
|
|
|
|
|
#define CDBG_IDx(n, id) ((1<<(n+4)) | (id<<(n*8+8)))
|
|
#define CDBG_INV (1<<7)
|
|
#define CDBG_PEN (1<<3)
|
|
#define CDBG_XEN (1<<2)
|
|
#define CDBG_WEN (1<<1)
|
|
#define CDBG_REN (1<<0)
|
|
|
|
void debug_init();
|
|
void exception_analyze();
|
|
|
|
/********************************** DUBUG SFR *****************************************/
|
|
|
|
u32 get_dev_id(char *name);
|
|
|
|
|
|
void emu_stack_limit_set(u8 mode, u32 limit_l, u32 limit_h);
|
|
|
|
|
|
/* ---------------------------------------------------------------------------- */
|
|
/**
|
|
* @brief Memory权限保护设置
|
|
*
|
|
* @param idx: 保护框索引, 范围: 0 ~ 3, 目前系统默认使用0和3, 用户可用1和2
|
|
* @param begin: Memory开始地址
|
|
* @param end: Memory结束地址
|
|
* @param inv: 0: 保护框内, 1: 保护框外
|
|
* @param format: "Cxwr0rw1rw2rw3rw", CPU:外设0:外设1:外设2:外设3,
|
|
* @param ...: 外设ID号索引, 如: DBG_EQ, 见debug.h
|
|
*/
|
|
/* ---------------------------------------------------------------------------- */
|
|
void mpu_set(int idx, u32 begin, u32 end, u32 inv, const char *format, ...);
|
|
|
|
|
|
/* ---------------------------------------------------------------------------- */
|
|
/**
|
|
* @brief 取消指定框的mpu保护
|
|
*
|
|
* @param idx: 保护框索引号
|
|
*/
|
|
/* ---------------------------------------------------------------------------- */
|
|
void mpu_disable_by_index(u8 idx);
|
|
|
|
|
|
/* ---------------------------------------------------------------------------- */
|
|
/**
|
|
* @brief :取消所有保护框mpu保护
|
|
*/
|
|
/* ---------------------------------------------------------------------------- */
|
|
void mpu_diasble(void);
|
|
|
|
#endif
|
|
|
|
|