summaryrefslogtreecommitdiff
path: root/openpcd/firmware/src/main_usb.c
blob: 1002db5b5f3815c9014c6d32c667fbfc1a31a319 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
/* main_usb - OpenPCD test firmware for benchmarking USB performance
 * (C) 2006 by Harald Welte <laforge@gnumonks.org>
 */

#include <errno.h>
#include <string.h>
#include <lib_AT91SAM7.h>
#include "openpcd.h"
#include "rc632.h"
#include "dbgu.h"
#include "led.h"
#include "pwm.h"
#include "tc.h"
#include "ssc.h"
#include "pcd_enumerate.h"
#include "usb_handler.h"

static char usb_buf1[64];
static char usb_buf2[64];
static struct req_ctx dummy_rctx1;


static void help(void)
{
}

void _init_func(void)
{
	DEBUGPCR("\r\n===> main_usb <===\r\n");
	help();

	udp_init();

	memset(usb_buf1, '1', sizeof(usb_buf1));
	memset(usb_buf2, '2', sizeof(usb_buf2));

	dummy_rctx1.tx.tot_len = sizeof(usb_buf1);
	memcpy(dummy_rctx1.tx.data, usb_buf1, sizeof(usb_buf1));

}

int _main_dbgu(char key)
{
	switch (key) {
	default:
		return -EINVAL;
	}

	return 0;
}

void _main_func(void)
{
	/* first we try to get rid of pending to-be-sent stuff */
	//usb_out_process();

	/* next we deal with incoming reqyests from USB EP1 (OUT) */
	//usb_in_process();

	/* try unthrottling sources since we now are [more] likely to
	 * have empty request contexts */
	//udp_unthrottle();

	while (udp_refill_ep(2, &dummy_rctx1) < 0) ;

	DEBUGP("S");

	//led_toggle(2);
}
personal git repositories of Harald Welte. Your mileage may vary