大家好,有个问题想请教下:
///宏用于设置SW diag的特定值
#define DBG_SWDIAG(bank, field, value)
上面定义的宏什么意思,不是很明白。
DBG_SWDIAG(睡眠、藻类、0);
DBG_SWDIAG(睡眠、藻类、1);
DBG_SWDIAG(睡眠,算法2);
DBG_SWDIAG(睡眠、藻类、3);
DBG_SWDIAG(睡眠、藻类、4);
DBG_SWDIAG(睡眠、藻类、5);
DBG_SWDIAG(睡眠、藻类、6);
关键词:
设备:
看一下宏的定义:
#define DBG_SWDIAG(bank, field, value) \
if(sw_to_hw[DBG_SWDIAG_##bank] != DBG_SWDIAG_UNDEFINED) \
{\
SW_DIAG_SET (((SW_DIAG_GET ()) & (~ (DBG_SWDIAG_ # # # # _ # # # #领域_MASK < < (8 * sw_to_hw [DBG_SWDIAG_ # #银行 ])))) | (((( 银行价值< < DBG_SWDIAG_ # # # # _ # # # #领域_OFFSET) & DBG_SWDIAG_ # # # # _ # # # # _MASK) < < (8 * sw_to_hw [DBG_SWDIAG_ # #银行]))));\
}
现在分配了24个银行,见Dbg_swdiag.h。用来记录软件运行的自定义调试信息。最后调用下面的函数写到相应的寄存器里面。也可以调用读操作,读取运行最后的状态
__INLINE void ble_swprofiling_set(uint32_t value)
{
REG_BLE_WR (BLE_SWPROFILING_ADDR、价值);
}