0
|
1 |
/******************************************************************************
|
|
2 |
*
|
|
3 |
* msr_io.c
|
|
4 |
*
|
|
5 |
* Debugging über Serielle Schnittstelle
|
|
6 |
*
|
|
7 |
* Autoren: Wilhelm Hagemeister
|
|
8 |
*
|
|
9 |
* $LastChangedDate: 2005-09-16 17:45:46 +0200 (Fri, 16 Sep 2005) $
|
|
10 |
* $Author: hm $
|
|
11 |
*
|
|
12 |
* (C) Copyright IgH 2005
|
|
13 |
* Ingenieurgemeinschaft IgH
|
|
14 |
* Heinz-Bäcker Str. 34
|
|
15 |
* D-45356 Essen
|
|
16 |
* Tel.: +49 201/61 99 31
|
|
17 |
* Fax.: +49 201/61 98 36
|
|
18 |
* E-mail: sp@igh-essen.com
|
|
19 |
*
|
|
20 |
* /bin/setserial /dev/ttyS0 uart none
|
|
21 |
* /bin/setserial /dev/ttyS1 uart none
|
|
22 |
*
|
|
23 |
*
|
|
24 |
******************************************************************************/
|
|
25 |
|
|
26 |
/*--Includes-----------------------------------------------------------------*/
|
|
27 |
|
|
28 |
#include <linux/module.h>
|
|
29 |
#include <linux/tqueue.h>
|
|
30 |
#include <linux/slab.h>
|
|
31 |
#include <linux/delay.h>
|
|
32 |
#include <linux/spinlock.h>
|
|
33 |
|
|
34 |
#include "aip_com.h"
|
|
35 |
#include "rs232dbg.h"
|
|
36 |
#include <rtai.h>
|
|
37 |
|
|
38 |
spinlock_t rs232wlock;
|
|
39 |
|
|
40 |
|
|
41 |
void SDBG_print(const char *format, ...)
|
|
42 |
{
|
|
43 |
va_list argptr;
|
|
44 |
static char buf[1024];
|
|
45 |
int len;
|
|
46 |
if(format != NULL) {
|
|
47 |
va_start(argptr,format);
|
|
48 |
len = vsnprintf(buf, sizeof(buf), format, argptr);
|
|
49 |
if (len > 0 && buf[len - 1] == '\n') len--; // fp
|
|
50 |
rt_com_write(0,buf,len);
|
|
51 |
rt_com_write(0,"\r\n",2);
|
|
52 |
va_end(argptr);
|
|
53 |
}
|
|
54 |
}
|
|
55 |
|
|
56 |
/*
|
|
57 |
void SDBG_print(unsigned char *buf)
|
|
58 |
{
|
|
59 |
static int counter = 0;
|
|
60 |
unsigned char cbuf[20];
|
|
61 |
unsigned long flags;
|
|
62 |
|
|
63 |
// flags = rt_spin_lock_irqsave (&rs232wlock);
|
|
64 |
|
|
65 |
sprintf(cbuf,"%0d -- ",counter);
|
|
66 |
rt_com_write(0,cbuf,strlen(cbuf));
|
|
67 |
rt_com_write(0,buf,strlen(buf));
|
|
68 |
rt_com_write(0,"\r\n",2);
|
|
69 |
counter++;
|
|
70 |
counter %= 10; //did we miss frames ??
|
|
71 |
// rt_spin_unlock_irqrestore (&rs232wlock,flags);
|
|
72 |
}
|
|
73 |
*/
|
|
74 |
|
|
75 |
|
|
76 |
/*
|
|
77 |
*******************************************************************************
|
|
78 |
*
|
|
79 |
* Function: msr_init
|
|
80 |
*
|
|
81 |
* Beschreibung: MSR initialisieren
|
|
82 |
*
|
|
83 |
* Parameter:
|
|
84 |
*
|
|
85 |
* Rückgabe:
|
|
86 |
*
|
|
87 |
* Status: exp
|
|
88 |
*
|
|
89 |
*******************************************************************************
|
|
90 |
*/
|
|
91 |
|
|
92 |
int msr_init(void)
|
|
93 |
{
|
|
94 |
spin_lock_init (&rs2323wlock);
|
|
95 |
|
|
96 |
printk("starting RS232 Setup\n");
|
|
97 |
if(init_aip_com())
|
|
98 |
{
|
|
99 |
printk("RS232 Setup failed\n");
|
|
100 |
return -1;
|
|
101 |
}
|
|
102 |
|
|
103 |
SDBG_print("Hello Word, Serial Debugger started...");
|
|
104 |
mdelay(10);
|
|
105 |
return 0;
|
|
106 |
}
|
|
107 |
|
|
108 |
/*
|
|
109 |
*******************************************************************************
|
|
110 |
*
|
|
111 |
* Function: msr_io_cleanup
|
|
112 |
*
|
|
113 |
* Beschreibung: Aufräumen
|
|
114 |
*
|
|
115 |
* Parameter:
|
|
116 |
*
|
|
117 |
* Rückgabe:
|
|
118 |
*
|
|
119 |
* Status: exp
|
|
120 |
*
|
|
121 |
*******************************************************************************
|
|
122 |
*/
|
|
123 |
|
|
124 |
void msr_io_cleanup(void)
|
|
125 |
{
|
|
126 |
cleanup_aip_com();
|
|
127 |
}
|
|
128 |
|
|
129 |
/*---Treiber-Einsprungspunkte etc.-------------------------------------------*/
|
|
130 |
|
|
131 |
MODULE_LICENSE("GPL");
|
|
132 |
|
|
133 |
module_init(msr_init);
|
|
134 |
module_exit(msr_io_cleanup);
|
|
135 |
|
|
136 |
/*---Ende--------------------------------------------------------------------*/
|