mirror of
git://projects.qi-hardware.com/nn-usb-fpga.git
synced 2025-04-21 12:27:27 +03:00
Adding PS2, capacitive keyboard examples
This commit is contained in:
@@ -9,11 +9,11 @@ f8000003
|
||||
781c0000
|
||||
3b9c0ffc
|
||||
781a0000
|
||||
3b5a06c0
|
||||
3b5a0690
|
||||
78010000
|
||||
382106c0
|
||||
38210684
|
||||
78030000
|
||||
386306c4
|
||||
38630688
|
||||
44230004
|
||||
58200000
|
||||
34210004
|
||||
@@ -21,7 +21,7 @@ e3fffffd
|
||||
34010000
|
||||
34020000
|
||||
34030000
|
||||
f8000041
|
||||
f8000032
|
||||
34010001
|
||||
d0010000
|
||||
c3a00000
|
||||
@@ -33,58 +33,43 @@ d0010000
|
||||
c3a00000
|
||||
c0200000
|
||||
e0000000
|
||||
379cfff8
|
||||
5b8b0008
|
||||
5b9d0004
|
||||
f800006e
|
||||
3c2b0008
|
||||
f800006c
|
||||
b5610800
|
||||
3c2b0008
|
||||
f8000069
|
||||
b5610800
|
||||
3c2b0008
|
||||
f8000066
|
||||
b5610800
|
||||
2b9d0004
|
||||
2b8b0008
|
||||
379c0008
|
||||
c3a00000
|
||||
379cffd0
|
||||
379cffe8
|
||||
5b8b0010
|
||||
5b8c000c
|
||||
5b9b0008
|
||||
5b8d0008
|
||||
5b9d0004
|
||||
b820d800
|
||||
b8205800
|
||||
78010000
|
||||
3821046c
|
||||
f800006a
|
||||
38210430
|
||||
f800006c
|
||||
37820014
|
||||
b8406000
|
||||
37830034
|
||||
2361000f
|
||||
58410000
|
||||
34420004
|
||||
037b0004
|
||||
b8406800
|
||||
3783001c
|
||||
2161000f
|
||||
30410000
|
||||
34420001
|
||||
016b0004
|
||||
5c43fffc
|
||||
358cfffc
|
||||
379b0030
|
||||
340b0009
|
||||
2b620000
|
||||
35adffff
|
||||
378b001b
|
||||
340c0009
|
||||
41620000
|
||||
34410030
|
||||
484b000c
|
||||
f800005b
|
||||
377bfffc
|
||||
5f6cfffb
|
||||
34010020
|
||||
34430037
|
||||
202100ff
|
||||
544c000c
|
||||
356bffff
|
||||
f8000051
|
||||
5d6dfff9
|
||||
3401002e
|
||||
f800004e
|
||||
2b9d0004
|
||||
2b8b0010
|
||||
2b8c000c
|
||||
2b9b0008
|
||||
379c0030
|
||||
2b8d0008
|
||||
379c0018
|
||||
c3a00000
|
||||
34410037
|
||||
206100ff
|
||||
e3fffff4
|
||||
379cffe4
|
||||
5b8b001c
|
||||
@@ -102,10 +87,10 @@ f8000032
|
||||
780d0000
|
||||
e0000004
|
||||
b9a00800
|
||||
382104a4
|
||||
38210468
|
||||
f800003d
|
||||
b9800800
|
||||
38210470
|
||||
38210434
|
||||
f800003a
|
||||
f8000027
|
||||
5c2bfff9
|
||||
@@ -113,16 +98,16 @@ f8000027
|
||||
f8000058
|
||||
b8207000
|
||||
ba000800
|
||||
3821048c
|
||||
38210450
|
||||
f8000032
|
||||
b9c00800
|
||||
fbffffbe
|
||||
fbffffbc
|
||||
b9e00800
|
||||
38210498
|
||||
3821045c
|
||||
f800002d
|
||||
e3fffff0
|
||||
78020000
|
||||
384206b8
|
||||
3842067c
|
||||
3803c350
|
||||
28420000
|
||||
88230800
|
||||
@@ -136,7 +121,7 @@ e3fffff0
|
||||
4420fffe
|
||||
c3a00000
|
||||
78010000
|
||||
382106b8
|
||||
3821067c
|
||||
28210000
|
||||
3802c350
|
||||
58220004
|
||||
@@ -147,7 +132,7 @@ c3a00000
|
||||
c3a00000
|
||||
c3a00000
|
||||
78010000
|
||||
382106b4
|
||||
38210678
|
||||
28220000
|
||||
28410000
|
||||
20210001
|
||||
@@ -156,7 +141,7 @@ c3a00000
|
||||
202100ff
|
||||
c3a00000
|
||||
78020000
|
||||
384206b4
|
||||
38420678
|
||||
28430000
|
||||
202100ff
|
||||
28620000
|
||||
@@ -167,7 +152,7 @@ c3a00000
|
||||
40240000
|
||||
4480000b
|
||||
78020000
|
||||
384206b4
|
||||
38420678
|
||||
28430000
|
||||
28620000
|
||||
20420010
|
||||
@@ -183,7 +168,7 @@ b8204000
|
||||
c3a00000
|
||||
34010000
|
||||
78070000
|
||||
38e704b4
|
||||
38e70478
|
||||
b8201800
|
||||
b5032000
|
||||
40840000
|
||||
@@ -220,7 +205,7 @@ fbffffc2
|
||||
780d0000
|
||||
fbffffc1
|
||||
b9e08800
|
||||
39ad04b4
|
||||
39ad0478
|
||||
34100000
|
||||
340e0082
|
||||
fbffffb3
|
||||
@@ -1022,3 +1007,18 @@ f0020000
|
||||
00000000
|
||||
00000000
|
||||
00000000
|
||||
00000000
|
||||
00000000
|
||||
00000000
|
||||
00000000
|
||||
00000000
|
||||
00000000
|
||||
00000000
|
||||
00000000
|
||||
00000000
|
||||
00000000
|
||||
00000000
|
||||
00000000
|
||||
00000000
|
||||
00000000
|
||||
00000000
|
||||
|
||||
@@ -5,47 +5,37 @@
|
||||
*/
|
||||
#include "soc-hw.h"
|
||||
|
||||
/* prototypes */
|
||||
uint32_t read_uint32()
|
||||
{
|
||||
uint32_t val = 0, i;
|
||||
|
||||
for (i = 0; i < 4; i++) {
|
||||
val <<= 8;
|
||||
val += (uint8_t)uart_getchar();
|
||||
}
|
||||
|
||||
return val;
|
||||
}
|
||||
|
||||
void hexprint(unsigned int hexval)
|
||||
{
|
||||
int digit[8], pos;
|
||||
unsigned char digit[8];
|
||||
int pos;
|
||||
uart_putstr("0x");
|
||||
for(pos = 0; pos < 8; pos++)
|
||||
{
|
||||
digit[pos] = (hexval & 0xF); /* last hexit */
|
||||
digit[pos] = (hexval & 0x0F); /* last hexit */
|
||||
hexval = hexval >> 4;
|
||||
}
|
||||
for(pos = 7; pos > -1; pos--)
|
||||
{
|
||||
if(digit[pos] < 0xA)
|
||||
uart_putstr((char *)digit[pos] + '0');
|
||||
if( digit[pos] < 0x0A)
|
||||
uart_putchar(digit[pos] + '0' );
|
||||
else
|
||||
uart_putstr((char *)digit[pos] + 'A' - 10);
|
||||
uart_putchar(digit[pos] + 'A' - 10);
|
||||
}
|
||||
uart_putchar(' ');
|
||||
uart_putchar('.');
|
||||
}
|
||||
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
int8_t *p;
|
||||
uint8_t c;
|
||||
int key, len, autoboot = 1, dispmenu = 1;
|
||||
int8_t *p;
|
||||
uint8_t c;
|
||||
unsigned int key, len, autoboot = 1, dispmenu = 1;
|
||||
|
||||
// Initialize UART
|
||||
uart_init();
|
||||
// Initialize UART
|
||||
uart_init();
|
||||
|
||||
while(1){ /* loop forever until u-boot gets booted or the board is reset */
|
||||
if(dispmenu){
|
||||
@@ -57,8 +47,8 @@ int main(int argc, char **argv)
|
||||
// uart_putstr("6: Memory test\r\n");
|
||||
dispmenu = 0;
|
||||
}
|
||||
key = uart_getchar();
|
||||
autoboot = 0;
|
||||
key = uart_getchar();
|
||||
autoboot = 0;
|
||||
if(key == '1'){
|
||||
len = rxmodem((unsigned char *)0x800);
|
||||
uart_putstr("Received ");
|
||||
@@ -71,10 +61,6 @@ int main(int argc, char **argv)
|
||||
uart_putstr("Invalid input\r\n");
|
||||
dispmenu = 1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -46,13 +46,13 @@ void uart_init()
|
||||
//uart0->div = (FCPU/(57600*16));
|
||||
}
|
||||
|
||||
char uart_getchar()
|
||||
unsigned char uart_getchar()
|
||||
{
|
||||
while (! (uart0->ucr & UART_DR)) ;
|
||||
return uart0->rxtx;
|
||||
return (uart0->rxtx) & 0xFF;
|
||||
}
|
||||
|
||||
void uart_putchar(char c)
|
||||
void uart_putchar(unsigned char c)
|
||||
{
|
||||
while (uart0->ucr & UART_BUSY) ;
|
||||
uart0->rxtx = c;
|
||||
|
||||
@@ -92,9 +92,9 @@ typedef struct {
|
||||
} uart_t;
|
||||
|
||||
void uart_init();
|
||||
void uart_putchar(char c);
|
||||
void uart_putchar(unsigned char c);
|
||||
void uart_putstr(char *str);
|
||||
char uart_getchar();
|
||||
unsigned char uart_getchar();
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
@@ -73,33 +73,33 @@ unsigned short crc16_ccitt(const void *buf, int len)
|
||||
|
||||
int rxmodem(unsigned char *dest)
|
||||
{
|
||||
unsigned long *ptr = (unsigned long *) 0x0;
|
||||
unsigned short crc, tcrc;
|
||||
int i, pid = 1, len = 0;
|
||||
int i, len = 0;
|
||||
unsigned char pid = 1;
|
||||
|
||||
uart_getchar ();
|
||||
uart_getchar();
|
||||
for(i = 0; i < 0x4000000; i++) { asm("nop;"); }
|
||||
uart_putchar ('C');
|
||||
uart_putchar('C');
|
||||
|
||||
while(1)
|
||||
{
|
||||
char c, pid1, pid2;
|
||||
unsigned char c, pid1, pid2;
|
||||
|
||||
c = uart_getchar();
|
||||
c = uart_getchar() & 0xFF;
|
||||
|
||||
if (c != SOH)
|
||||
{
|
||||
if (c == EOT)
|
||||
{
|
||||
uart_putchar (ACK);
|
||||
uart_putchar(ACK);
|
||||
return len;
|
||||
}
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
pid1 = uart_getchar ();
|
||||
pid2 = uart_getchar ();
|
||||
pid1 = uart_getchar() & 0xFF;
|
||||
pid2 = uart_getchar() & 0xFF;
|
||||
|
||||
if ((pid1 & 0xFF) != (~pid2 & 0xFF))
|
||||
return 0;
|
||||
@@ -108,7 +108,7 @@ int rxmodem(unsigned char *dest)
|
||||
return 0;
|
||||
|
||||
for (i = 0; i < 130; i++)
|
||||
*dest++ = uart_getchar ();
|
||||
*dest++ = uart_getchar();
|
||||
|
||||
crc = crc16_ccitt (dest - 130, 128);
|
||||
tcrc = (*(dest - 2)<<8) + *(dest - 1);
|
||||
@@ -119,7 +119,7 @@ int rxmodem(unsigned char *dest)
|
||||
pid = (pid + 1) & 0xFF;
|
||||
dest -= 2;
|
||||
len += 128;
|
||||
uart_putchar (ACK);
|
||||
uart_putchar(ACK);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,8 +52,8 @@ initial begin
|
||||
|
||||
$dumpfile("system_tb.vcd");
|
||||
//$monitor("%b,%b,%b,%b",clk,rst,uart_txd,uart_rxd);
|
||||
$dumpvars(-1, dut);
|
||||
//$dumpvars(-1,clk,rst,uart_txd,uart_rxd);
|
||||
//$dumpvars(-1, dut);
|
||||
$dumpvars(-1,clk,rst,uart_txd);
|
||||
// reset
|
||||
#0 rst <= 0;
|
||||
#80 rst <= 1;
|
||||
|
||||
Reference in New Issue
Block a user