luckfox-pico-sdk/sysdrv/drv_ko/wifi/atbm/hal_apollo/dbg_event.c
2023-08-08 20:36:47 +08:00

101 lines
2.1 KiB
C

//#define DBG_EVENT_LOG
#ifdef DBG_EVENT_LOG
#include <net/atbm_mac80211.h>
#define ELOG_LEN 64
struct elog_id{
unsigned int id;
unsigned int valid;
unsigned long tim;
unsigned int data;
};
struct elog_s {
u8 start;
u8 index;
u16 len;
struct elog_id e_id[ELOG_LEN];
};
#define EVENT_MEM_ALIGN 8
#ifndef ALIGN
#define ALIGN(a,b) (((a) + ((b) - 1)) & (~((b)-1)))
#endif
struct elog_s elogdata;
struct elog_s *elog = (struct elog_s * )&elogdata;
void ELOG_INIT(void)
{
int len =0;
elog = (struct elog_s * )&elogdata;
//elog = (struct elog_s * )ALIGN((u32)&SM_Region.data[0],EVENT_MEM_ALIGN);
//ASSERT((SM_MEM_LEN-sizeof(elog)-EVENT_MEM_ALIGN)>sizeof(struct elog_id),0x99);
//len = (SM_MEM_LEN-sizeof(elog)-EVENT_MEM_ALIGN)/sizeof(struct elog_id);
//if(len > ELOG_LEN)
len = ELOG_LEN;
memset(elog,0,sizeof(struct elog_id));
elog->start = 1;
elog->index = 0;
elog->len = len;
atbm_printk_always("ELOG_INIT len %d \n",elog->len);
}
void ELOG_Add(u8 id,u32 data)
{
if(elog->start ){
elog->e_id[elog->index].id = id;
elog->e_id[elog->index].data = data;
elog->e_id[elog->index].tim = jiffies;
elog->e_id[elog->index].valid = 1;
elog->index++;
if(elog->index >= elog->len){
elog->index = 0;
}
}
}
void ELOG_Stop(void)
{
elog->start = 0;
atbm_printk_always("E_Stop\n");
}
void ELOG_Start(void)
{
elog->start = 1;
}
void ELOG_Clear(void)
{
int i=0;
elog->index=0;
while(i<elog->len){
elog->e_id[i].valid = 0;
i++;
}
}
void ELOG_Show(void)
{
u32 tim = 0;
u8 index = elog->index;
int loop = 0;
atbm_printk_always("ELOG_Show id:data:tim (%d:%d)\n",elog->index,elog->len);
do {
loop++;
if(index >= elog->len){
index = 0;
}
if(!elog->e_id[index].valid){
index++;
continue;
}
atbm_printk_always("%02x|%08x|%06lx\n",elog->e_id[index].id,
elog->e_id[index].data,
(elog->e_id[index].tim-tim));
tim = elog->e_id[index].tim;
index++;
}while(loop < elog->len);//(index!=elog->index);
atbm_printk_always("ELOG_Show end\n");
}
#endif //if DBG_EVENT_LOG