cc0f06d3dc633d98f2ffc8014112cf7e8949c84e
Stefan Schuermans implementation of ethernet...

Stefan Schuermans authored 12 years ago

1) #include "arp.h"
Stefan Schuermans added cycle counter peripheral

Stefan Schuermans authored 12 years ago

2) #include "cyc_cnt.h"
Stefan Schuermans begin of ethernet RX implem...

Stefan Schuermans authored 12 years ago

3) #include "eth.h"
Stefan Schuermans implemented LCD peripheral

Stefan Schuermans authored 12 years ago

4) #include "lcd.h"
Stefan Schuermans added "LEDs" I/O peripheral...

Stefan Schuermans authored 12 years ago

5) #include "leds.h"
Stefan Schuermans implemented TX part of UART...

Stefan Schuermans authored 12 years ago

6) #include "uart.h"
Stefan Schuermans implemented switches

Stefan Schuermans authored 12 years ago

7) #include "switches.h"
Stefan Schuermans added "LEDs" I/O peripheral...

Stefan Schuermans authored 12 years ago

8) 
Stefan Schuermans implementation of ethernet...

Stefan Schuermans authored 12 years ago

9) unsigned char leds_val = 0x88;
Stefan Schuermans send ethernet packet on cen...

Stefan Schuermans authored 12 years ago

10) 
Stefan Schuermans implemented switches

Stefan Schuermans authored 12 years ago

11) void switches(void)
12) {
13)   lcd_chr(1, 0, switches_get_state(sw_0) ? '0' : ' ');
14)   lcd_chr(1, 1, switches_get_state(sw_1) ? '1' : ' ');
15)   lcd_chr(1, 2, switches_get_state(sw_2) ? '2' : ' ');
16)   lcd_chr(1, 3, switches_get_state(sw_3) ? '3' : ' ');
17)   lcd_chr(1, 4, switches_get_state(sw_east) ? 'E' : ' ');
18)   lcd_chr(1, 5, switches_get_state(sw_north) ? 'N' : ' ');
19)   lcd_chr(1, 6, switches_get_state(sw_south) ? 'S' : ' ');
20)   lcd_chr(1, 7, switches_get_state(sw_west) ? 'W' : ' ');
21)   lcd_chr(1, 8, switches_get_state(sw_center) ? 'C' : ' ');
22)   lcd_chr(1, 9, switches_get_state(sw_rot_a) ? 'a' : ' ');
23)   lcd_chr(1, 10, switches_get_state(sw_rot_b) ? 'b' : ' ');
Stefan Schuermans implemented displaying rota...

Stefan Schuermans authored 12 years ago

24) 
25)   unsigned int cnt = switches_get_rot_cnt();
26)   lcd_chr(1, 12, '0' + (cnt >> 9 & 0x7));
27)   lcd_chr(1, 13, '0' + (cnt >> 6 & 0x7));
28)   lcd_chr(1, 14, '0' + (cnt >> 3 & 0x7));
29)   lcd_chr(1, 15, '0' + (cnt & 0x7));
Stefan Schuermans implemented switches

Stefan Schuermans authored 12 years ago

30) }
31) 
Stefan Schuermans implementation of ethernet...

Stefan Schuermans authored 12 years ago

32) void leds_uart(void)
33) {
34)   unsigned short chr;
35) 
36)   while (uart_can_rx()) {
37)     chr = uart_rx();
38)     if (uart_is_err(chr))
39)       leds_val = 0;
40)     else
41)       leds_val = chr;
42)     leds_set_state(leds_val);
43)   }
44) }
45) 
46) void eth_task(void)
Stefan Schuermans slower LED animation for ex...

Stefan Schuermans authored 12 years ago

47) {
Stefan Schuermans implemented ethernet TX fir...

Stefan Schuermans authored 12 years ago

48)   void *vptr;
Stefan Schuermans implementation of ethernet...

Stefan Schuermans authored 12 years ago

49)   unsigned int sz, i;
Stefan Schuermans implemented ethernet RX bus...

Stefan Schuermans authored 12 years ago

50)   unsigned char *ptr;
Stefan Schuermans implementation of ethernet...

Stefan Schuermans authored 12 years ago

51) 
52)   while (eth_rx(&vptr, &sz)) {
53)     ptr = vptr;
54)     for (i = 0; i < sz; ++i)
55)       uart_tx(ptr[i]);
56)     ethernet_recv(vptr, sz);
Stefan Schuermans implemented switches

Stefan Schuermans authored 12 years ago

57)   }
Stefan Schuermans slower LED animation for ex...

Stefan Schuermans authored 12 years ago

58) }
Stefan Schuermans initial firmware and testbed

Stefan Schuermans authored 12 years ago

59) 
Stefan Schuermans implementation of ethernet...

Stefan Schuermans authored 12 years ago

60) void tasks(void)
61) {
62)   switches();
63)   leds_uart();
64)   eth_task();
65) }
66) 
67) void leds_tick200(void)
68) {
69)   leds_val = leds_val << 1 | leds_val >> 7;
70)   leds_set_state(leds_val);
71) }
72) 
73) void tick200(void)
74) {
75)   leds_tick200();
76)   arp_tick200();
77) }
78) 
Stefan Schuermans initial firmware and testbed

Stefan Schuermans authored 12 years ago

79) int main()
80) {
Stefan Schuermans added "LEDs" I/O peripheral...

Stefan Schuermans authored 12 years ago

81)   unsigned int i;
82) 
Stefan Schuermans implemented ethernet RX bus...

Stefan Schuermans authored 12 years ago

83)   leds_set_state(0x01);
84) 
Stefan Schuermans made MAC configurable in et...

Stefan Schuermans authored 12 years ago

85)   eth_mac_init();
Stefan Schuermans implemented ethernet RX bus...

Stefan Schuermans authored 12 years ago

86)   eth_rx_init();
87) 
Stefan Schuermans implementation of ethernet...

Stefan Schuermans authored 12 years ago

88)   leds_set_state(0x02);
Stefan Schuermans implemented ethernet RX bus...

Stefan Schuermans authored 12 years ago

89) 
Stefan Schuermans implemented LCD peripheral

Stefan Schuermans authored 12 years ago

90)   lcd_init();
Stefan Schuermans implemented switches

Stefan Schuermans authored 12 years ago

91)   lcd_str(0, "MIPS I system");
92)   lcd_str(1, "");
Stefan Schuermans implemented LCD peripheral

Stefan Schuermans authored 12 years ago

93) 
Stefan Schuermans implementation of ethernet...

Stefan Schuermans authored 12 years ago

94)   leds_set_state(0x04);
Stefan Schuermans implemented ethernet RX bus...

Stefan Schuermans authored 12 years ago

95) 
Stefan Schuermans implemented TX part of UART...

Stefan Schuermans authored 12 years ago

96)   uart_cfg_scale(62); /* 115200 */
97)   uart_cfg_bits(8);
98)   uart_cfg_stop(1);
99)   uart_tx('M');
100)   uart_tx('I');
101)   uart_tx('P');
102)   uart_tx('S');
103)   uart_tx(' ');
104)   uart_tx('I');
105)   uart_tx('\r');
106)   uart_tx('\n');
Stefan Schuermans implementation of ethernet...

Stefan Schuermans authored 12 years ago

107) 
108)   leds_set_state(0x08);
109) 
110)   arp_init();
Stefan Schuermans implemented TX part of UART...

Stefan Schuermans authored 12 years ago

111) 
Stefan Schuermans implemented ethernet RX bus...

Stefan Schuermans authored 12 years ago

112)   leds_set_state(0x10);
113) 
Stefan Schuermans slower LED animation for ex...

Stefan Schuermans authored 12 years ago

114)   while (1) {
Stefan Schuermans implementation of ethernet...

Stefan Schuermans authored 12 years ago

115)     for (i = 0; i < 20; ++i) {
116)       tasks();
117)       cyc_cnt_delay_ms(10);
Stefan Schuermans add UART error check to FW

Stefan Schuermans authored 12 years ago

118)     }
Stefan Schuermans implementation of ethernet...

Stefan Schuermans authored 12 years ago

119)     tick200();
Stefan Schuermans slower LED animation for ex...

Stefan Schuermans authored 12 years ago

120)   }
Stefan Schuermans added "LEDs" I/O peripheral...

Stefan Schuermans authored 12 years ago

121)