2个帖子/ 0个新
最后发表
awesley
离线
最后看到:3年2个月前
加入:2015-07-07 12:08
#define DBG_SWDIAG(bank, field, value)

大家好,有个问题想请教下:
///宏用于设置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);

关键词:
设备:
snowdream1
离线
最后看到:8个月,3个星期前
工作人员
加入:14章25条的2014-08-17
看一下宏的定义:

看一下宏的定义:
#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、价值);