]> rtime.felk.cvut.cz Git - eurobot/public.git/commitdiff
h8s can: Debug messages DBG() instead of #ifdefs and printf
authorMichal Sojka <sojkam1@fel.cvut.cz>
Sun, 19 Apr 2009 12:03:13 +0000 (14:03 +0200)
committerMichal Sojka <sojkam1@fel.cvut.cz>
Sun, 19 Apr 2009 19:13:40 +0000 (21:13 +0200)
src/canfestival/driver/canOpenDriver.c

index de2c1a6f0ce108929f54d51cf3d14c29a76b5fbc..e98dd79399bf4b69c8d082f962ff9e49e841cca6 100644 (file)
@@ -35,6 +35,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 #define DEBUG 0
 
 #define HCAN(channel, reg) ((channel) ? HCAN1_##reg : HCAN0_##reg)
+#define HCAN_MC(channel, mbox, byte) (HCAN((channel), MC0)+8*(mbox)+(byte))
 
 
 /* Debug variables */
@@ -43,9 +44,14 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
   int prerus_hcan0_old, prerus_hcan0_rec_old;
 #endif
 
+#if DEBUG
+   #define DBG(format, ...) printf(format, ##__VA_ARGS__)
+#else
+   #define DBG(format, ...)
+#endif
 
 
-#if DEBUG
+#if 0 //DEBUG
  #ifndef DEB_LED_OUT
   #define DEB_LED_OUT
   static void deb_led_out(char val)
@@ -126,7 +132,7 @@ volatile static t_pointerStack ptrMsgRcv[NB_LINE_CAN];
 /* Prototypes */
 UNS8 f_can_receive(UNS8 notused, Message *m);
 UNS8 canSend(UNS8 notused, Message *m);
-void readCanOregisters(int low,int high);
+void readCanOregisters(void *low, void *high);
 /* Copy from the stack of the message to treat */
 //static Message msgRcv;
 
@@ -155,7 +161,8 @@ UNS8 receiveMsgHandler(UNS8 bus_id)
 /***************************************************************************/
 char canAddIdToFilter(int can_chanel, UNS8 nFilter, UNS16 id)
 {
-  __u32 lafm, hwid_tmp;
+  //__u32 lafm;
+  __u32 hwid_tmp;
   __u16 lafml, lafmh;
   __u16 id_std, id_in;
 
@@ -284,9 +291,7 @@ int Can_Enable(int can_chanel)
        excptvec_set(108,can0HdlRcv);
        excptvec_set(109,can0HdlRcv);
        *SYS_MSTPCRC&=~MSTPCRC_MSTPC3m;         /* enable HCAN power */
-       #if DEBUG
-         printf("HCAN0 isr set:\n");
-       #endif
+       DBG("HCAN0 isr set:\n");
        break;
      case 1:
        if(!(*SYS_MSTPCRC&MSTPCRC_MSTPC2m))
@@ -294,9 +299,7 @@ int Can_Enable(int can_chanel)
        excptvec_set(106,can1HdlRcv);
        excptvec_set(107,can1HdlRcv);
        *SYS_MSTPCRC&=~MSTPCRC_MSTPC2m;         /* enable HCAN power */
-       #if DEBUG
-         printf("HCAN1 isr set:\n");
-       #endif
+       DBG("HCAN1 isr set:\n");
      default:
        return(-1);
    };
@@ -421,9 +424,7 @@ int can_set_registers(int can_chanel, can_settings_t *can_settings_hcan)
      *HCAN(hcanChS, LAFML)=can_settings_hcan->lafml;
      *HCAN(hcanChS, LAFMH)=can_settings_hcan->lafmh;
   }
-  #if DEBUG
-    printf("can_set_registers finished\n");
-  #endif
+  DBG("can_set_registers finished\n");
   return(0);
 };
 
@@ -454,9 +455,7 @@ char canMsgTransmit(int can_chanel, Message msg)
   };
   /* Looking for a free buffer */
   cantflg = ~((*HCAN(can_chanel, TXPR))|(*HCAN(can_chanel, MBCR)));
-  #if DEBUG
-    printf("cantflg=0x%x, TXPR=0x%x, MBCR=0x%x\n", cantflg, *HCAN(can_chanel, TXPR), *HCAN(can_chanel, MBCR));
-  #endif
+  DBG("cantflg=0x%x, TXPR=0x%x, MBCR=0x%x\n", cantflg, *HCAN(can_chanel, TXPR), *HCAN(can_chanel, MBCR));
   if (!cantflg) { /* all the TXEx are set */
     MSG_WAR(0X2604, "No buffer free. Msg to transmit is losted ", 0);
     return 1; /* No buffer free */
@@ -468,76 +467,58 @@ char canMsgTransmit(int can_chanel, Message msg)
       if(cantflg&0x01)
         break;
     };
-       #if DEBUG
-       printf("Actual mailbox: %02x\n",mailbox);
-    #endif
+    DBG("Actual mailbox: %02x\n",mailbox);
 /* Set pointer to correct mailbox control and data */
     
-    #if DEBUG
-        printf("\n ...");
-        printf("HCAN0_MC0: %04x\n",HCAN0_MC0);
-        printf("can_chanel: %04x\n",can_chanel);
-        printf("HCAN_MC_o: %04x\n",HCAN_MC_o);
-        printf("mailbox: %04x\n",mailbox);
-        printf("HCAN_MC_LENGTH: %04x\n",HCAN_MC_LENGTH);
-        printf("f820+40: %04x\n",0xf820+0x40);
-        printf("HCAN_MC+1: %04x\n",HCAN0_MC0+0x1);
-        printf("can_chanel*HCAN_MC_o: %04x\n",can_chanel*HCAN_MC_o);
-        printf("can_chanel*HCAN_MD_o: %04x\n",can_chanel*HCAN_MD_o);
-        printf("mailbox*HCAN_MC_LENGTH: %04x\n",mailbox*HCAN_MC_LENGTH);
-        printf("mailbox*HCAN_MD_LENGTH: %04x\n",mailbox*HCAN_MD_LENGTH);
-        printf("HCAN(can_chanel, MC0)+mailbox*HCAN_MC_LENGTH: %04x\n",HCAN(can_chanel, MC0)+mailbox*HCAN_MC_LENGTH);
-        printf("HCAN(can_chanel, MD0)+mailbox*HCAN_MD_LENGTH: %04x\n",HCAN(can_chanel, MD0)+mailbox*HCAN_MD_LENGTH);
-    #endif
-
+    DBG("\n ...");
+    DBG("HCAN0_MC0: %p\n",HCAN0_MC0);
+    DBG("can_chanel: %04x\n",can_chanel);
+    DBG("mailbox: %04x\n",mailbox);
+    DBG("HCAN_MC_LENGTH: %04x\n",HCAN_MC_LENGTH);
+    DBG("f820+40: %04x\n",0xf820+0x40);
+    DBG("mailbox*HCAN_MC_LENGTH: %04x\n",mailbox*HCAN_MC_LENGTH);
+    DBG("mailbox*HCAN_MD_LENGTH: %04x\n",mailbox*HCAN_MD_LENGTH);
+    DBG("HCAN(can_chanel, MC0)+mailbox*HCAN_MC_LENGTH: %p\n",HCAN(can_chanel, MC0)+mailbox*HCAN_MC_LENGTH);
+    DBG("HCAN(can_chanel, MD0)+mailbox*HCAN_MD_LENGTH: %p\n",HCAN(can_chanel, MD0)+mailbox*HCAN_MD_LENGTH);
    
     hcan_mc=(__u8 *)((void*)HCAN(can_chanel, MC0)+(mailbox*HCAN_MC_LENGTH));
     hcan_md=(__u8 *)((void*)HCAN(can_chanel, MD0)+(mailbox*HCAN_MD_LENGTH));
     //hcan_mc=0xfff860;
     //hcan_md=0xfff8f0;
-    #if DEBUG
-        printf("\nadress hcan_mc: %02x\n",hcan_mc);
-        printf("adress hcan_md: %02x\n",hcan_md);
-    #endif
-    
+
+    DBG("\nadress hcan_mc: %p\n",hcan_mc);
+    DBG("adress hcan_md: %p\n",hcan_md);
 
 /* We put ide = 0 because id is on 11 bits only */
     m_hwid=CAN_ID_FLG2HWID(msg.cob_id.w, 0, msg.rtr);
     write_can_id(can_chanel, mailbox, m_hwid); //m_hwid
     *hcan_mc=msg.len & 0x0f;
-    #if DEBUG
-       
-      printf("message length in hcan_mc: %02x\n",*hcan_mc);
-    #endif
+    DBG("message length in hcan_mc: %02x\n",*hcan_mc);
     /* For the priority, we put the highter bits of the cob_id */
       /* Seted in canInit */
-    #if DEBUG
-      printf("id=0x%x, len=0x%x, rtr=0x%x \n", msg.cob_id.w, msg.len, msg.rtr);
-      printf("data: ");
-    #endif
+    DBG("id=0x%04lx, len=0x%x, rtr=0x%x \n", msg.cob_id.w, msg.len, msg.rtr);
+    DBG("data: ");
     
     for (i = 0 ; i < msg.len ; i++) {
       *(hcan_md + i) = msg.data[i];
-      #if DEBUG
-        printf("%02x ", msg.data[i]);
-      #endif
+      DBG("%02x ", msg.data[i]);
     }
-    #if DEBUG
-      printf(" \n");
-       printf("zprm send: id=0x%x, len=%d, rtr=%d\n data: ", msg.cob_id.w, msg.len, msg.rtr);
-       for (i = 0 ; i < msg.len; i++)
-       printf("%x ", msg.data[i]);
-    printf("\n");
-    #endif
+#if DEBUG
+    DBG(" \n");
+    DBG("zprm send: id=0x%04lx, len=%d, rtr=%d\n data: ", msg.cob_id.w, msg.len, msg.rtr);
+    for (i = 0 ; i < msg.len; i++)
+      DBG("%x ", msg.data[i]);
+    DBG("\n");
+#endif
     /* Transmitting the message */
     
     
-       #if DEBUG
-       printf("MC[1..8]\n");
-       readCanOregisters(0xfff820,0xfff898);
-       printf("MD[1..8]\n");
-       readCanOregisters(0xfff8b0,0xfff928);
-       #endif
+#if DEBUG
+    DBG("MC[1..8]\n");
+    readCanOregisters((void*)0xfff820,(void*)0xfff898);
+    DBG("MD[1..8]\n");
+    readCanOregisters((void*)0xfff8b0,(void*)0xfff928);
+#endif
 
     *HCAN(can_chanel, TXPR) |= name2mask[mailbox];  /* Ready to transmit ! */
   }
@@ -643,26 +624,25 @@ UNS8 f_can_receive(UNS8 notused, Message *msgRcv)
 inline int write_can_id(int can_chanel, int mailbox, __u32 hwid)
 {
   int i;
-    #if DEBUG
-        printf("\nMessage ID writed to MC registers:\n");
-        printf("HCAN0_MC0: %04x\n",HCAN0_MC0);
-        printf("can_chanel: %04x\n",can_chanel);
-        printf("HCAN_MC_o: %04x\n",HCAN_MC_o);
-        printf("can_chanel: %04x\n",can_chanel);
-        
-    #endif
+
+  DBG("\nMessage ID writed to MC registers:\n");
+  DBG("HCAN0_MC0: %p\n",HCAN0_MC0);
+  DBG("can_chanel: %04x\n",can_chanel);
 
   for(i=0;i<4;i++) { /* Write id */
    *((__u8 *)HCAN(can_chanel, MC0)+mailbox*HCAN_MC_LENGTH+4+(3-i))=(hwid&0xff); //((__u16)(HCAN0_MC0))
    //*(0xfff860+4+(3-i))=hwid&0xff;
    hwid=(hwid>>8);
-   #if DEBUG
-        printf("adress:%02x, data:%02x\n",(__u16)HCAN(can_chanel, MC0)+mailbox*HCAN_MC_LENGTH+4+(3-i),*(((__u8 *)HCAN(can_chanel, MC0)+mailbox*HCAN_MC_LENGTH+4+(3-i)));
-       printf("id:%08x\n",hwid);
+
+#if 0 //DEBUG
+   DBG("adress:%p, data:%02x\n",
+       (__u32)HCAN(can_chanel, MC0)+mailbox*HCAN_MC_LENGTH+4+(3-i),
+       *(((__u8 *)HCAN(can_chanel, MC0)+mailbox*HCAN_MC_LENGTH+4+(3-i))));
+   DBG("id:%08x\n",hwid);
 //     *(((__u16 *)(0xfff860))+((__u8)(0x000004))+((__u8)(0x000001)))=0x55;
-       printf("write id MC[1..8]\n"); // volam to odsud
-       readCanOregisters(0xfff850,0xfff870);
-    #endif 
+   DBG("write id MC[1..8]\n"); // volam to odsud
+   readCanOregisters(0xfff850,0xfff870);
+#endif 
   };
   return 0;
 };
@@ -677,10 +657,10 @@ inline int read_can_id(int can_chanel, int mailbox, __u32 *hwid)
     hwid_tmp|=*((__u16 *)HCAN(can_chanel, MC0)+mailbox*HCAN_MC_LENGTH+4+i);
   *hwid = hwid_tmp;
 #if DEBUG
-       printf("read can id MC[1..8]\n");
-       readCanOregisters(0xfff820,0xfff898);
-       printf("read can id MD[1..8]\n");
-       readCanOregisters(0xfff8b0,0xfff928);
+  DBG("read can id MC[1..8]\n");
+  readCanOregisters((void*)0xfff820,(void*)0xfff898);
+  DBG("read can id MD[1..8]\n");
+  readCanOregisters((void*)0xfff8b0,(void*)0xfff928);
 #endif
   return 0;
 };
@@ -697,9 +677,9 @@ void can0HdlRcv (void)
   save_and_cli(saveif);
   //deb_led_out(0);
   //FlWait(1*100000);
-  #if DEBUG
-    prerus_hcan0++;
-  #endif
+#if DEBUG
+  prerus_hcan0++;
+#endif
   if (*HCAN0_IRR&IRR_IRR0m) ;
     *HCAN0_IRR |= IRR_IRR0m; /* set register to handled */
   if (*HCAN0_IRR&IRR_IRR1m)
@@ -710,9 +690,9 @@ void can0HdlRcv (void)
         continue;
      //deb_led_out(1);
      //FlWait(1*100000);
-      #if DEBUG
-        prerus_hcan0_rec++;
-      #endif
+#if DEBUG
+      prerus_hcan0_rec++;
+#endif
       if(idx<8)
         can_recive_msg(0, idx+8, 0); /* move message to buffer */
       else
@@ -741,15 +721,15 @@ void can1HdlRcv (void)
 {
 };
 
-void readCanOregisters(int low,int high)
+void readCanOregisters(void *low, void *high)
 {
-       int i;
+       void *i;
        int *p_i;
        unsigned char j =0;     
 
        for(i=low;i<=high;i+=16)
        {
-               printf("%04x: ",i);
+               printf("%p: ",i);
                for(j = 0; j<16 ;j += 2)
                {
                        p_i=i+j;