fp@0: /****************************************************************************** fp@0: * fp@0: * msr_io.c fp@0: * fp@0: * Debugging über Serielle Schnittstelle fp@0: * fp@0: * Autoren: Wilhelm Hagemeister fp@0: * fp@0: * $LastChangedDate: 2005-09-16 17:45:46 +0200 (Fri, 16 Sep 2005) $ fp@0: * $Author: hm $ fp@0: * fp@0: * (C) Copyright IgH 2005 fp@0: * Ingenieurgemeinschaft IgH fp@0: * Heinz-Bäcker Str. 34 fp@0: * D-45356 Essen fp@0: * Tel.: +49 201/61 99 31 fp@0: * Fax.: +49 201/61 98 36 fp@0: * E-mail: sp@igh-essen.com fp@0: * fp@0: * /bin/setserial /dev/ttyS0 uart none fp@0: * /bin/setserial /dev/ttyS1 uart none fp@0: * fp@0: * fp@0: ******************************************************************************/ fp@0: fp@0: /*--Includes-----------------------------------------------------------------*/ fp@0: fp@0: #include fp@0: #include fp@0: #include fp@0: #include fp@0: #include fp@0: fp@0: #include "aip_com.h" fp@0: #include "rs232dbg.h" fp@0: #include fp@0: fp@0: spinlock_t rs232wlock; fp@0: fp@0: fp@0: void SDBG_print(const char *format, ...) fp@0: { fp@0: va_list argptr; fp@0: static char buf[1024]; fp@0: int len; fp@0: if(format != NULL) { fp@0: va_start(argptr,format); fp@0: len = vsnprintf(buf, sizeof(buf), format, argptr); fp@0: if (len > 0 && buf[len - 1] == '\n') len--; // fp fp@0: rt_com_write(0,buf,len); fp@0: rt_com_write(0,"\r\n",2); fp@0: va_end(argptr); fp@0: } fp@0: } fp@0: fp@0: /* fp@0: void SDBG_print(unsigned char *buf) fp@0: { fp@0: static int counter = 0; fp@0: unsigned char cbuf[20]; fp@0: unsigned long flags; fp@0: fp@0: // flags = rt_spin_lock_irqsave (&rs232wlock); fp@0: fp@0: sprintf(cbuf,"%0d -- ",counter); fp@0: rt_com_write(0,cbuf,strlen(cbuf)); fp@0: rt_com_write(0,buf,strlen(buf)); fp@0: rt_com_write(0,"\r\n",2); fp@0: counter++; fp@0: counter %= 10; //did we miss frames ?? fp@0: // rt_spin_unlock_irqrestore (&rs232wlock,flags); fp@0: } fp@0: */ fp@0: fp@0: fp@0: /* fp@0: ******************************************************************************* fp@0: * fp@0: * Function: msr_init fp@0: * fp@0: * Beschreibung: MSR initialisieren fp@0: * fp@0: * Parameter: fp@0: * fp@0: * Rückgabe: fp@0: * fp@0: * Status: exp fp@0: * fp@0: ******************************************************************************* fp@0: */ fp@0: fp@0: int msr_init(void) fp@0: { fp@0: spin_lock_init (&rs2323wlock); fp@0: fp@0: printk("starting RS232 Setup\n"); fp@0: if(init_aip_com()) fp@0: { fp@0: printk("RS232 Setup failed\n"); fp@0: return -1; fp@0: } fp@0: fp@0: SDBG_print("Hello Word, Serial Debugger started..."); fp@0: mdelay(10); fp@0: return 0; fp@0: } fp@0: fp@0: /* fp@0: ******************************************************************************* fp@0: * fp@0: * Function: msr_io_cleanup fp@0: * fp@0: * Beschreibung: Aufräumen fp@0: * fp@0: * Parameter: fp@0: * fp@0: * Rückgabe: fp@0: * fp@0: * Status: exp fp@0: * fp@0: ******************************************************************************* fp@0: */ fp@0: fp@0: void msr_io_cleanup(void) fp@0: { fp@0: cleanup_aip_com(); fp@0: } fp@0: fp@0: /*---Treiber-Einsprungspunkte etc.-------------------------------------------*/ fp@0: fp@0: MODULE_LICENSE("GPL"); fp@0: fp@0: module_init(msr_init); fp@0: module_exit(msr_io_cleanup); fp@0: fp@0: /*---Ende--------------------------------------------------------------------*/