|
8 | 8 | #% endmacro |
9 | 9 |
|
10 | 10 | setrate 5000 |
| 11 | + set MARKER_START_ID 0 |
11 | 12 |
|
12 | 13 | set LOOKUP_PROC_SIZE 260 |
13 | 14 | set ROM_BYTE_OFFSET 174 |
|
21 | 22 | draw color 255 255 255 255 |
22 | 23 |
|
23 | 24 | reset: |
| 25 | + sensor enabled switch1 @enabled |
| 26 | + jump reset equal enabled false |
| 27 | + |
24 | 28 | wait 0.00001 |
25 | 29 |
|
26 | 30 | set CPU processor17 |
|
32 | 36 |
|
33 | 37 | set UART0 bank1 |
34 | 38 | set UART1 bank2 |
| 39 | + set UART2 bank3 |
| 40 | + set UART3 bank4 |
35 | 41 |
|
36 | 42 | # wait until everything is properly initialized |
37 | 43 | jump reset strictEqual CPU null |
|
40 | 46 | jump reset strictEqual DISPLAY null |
41 | 47 | jump reset strictEqual UART0 null |
42 | 48 | jump reset strictEqual UART1 null |
| 49 | + jump reset strictEqual UART2 null |
| 50 | + jump reset strictEqual UART3 null |
43 | 51 |
|
44 | 52 | set i -1 |
45 | 53 | reset__find_lookup_start: |
|
99 | 107 | sensor enabled switch1 @enabled |
100 | 108 | jump reset equal enabled false |
101 | 109 |
|
102 | | - set mark_memory_id 0 |
| 110 | + set mark_memory_id MARKER_START_ID |
103 | 111 |
|
104 | 112 | read MEMORY_X CPU "MEMORY_X" |
105 | 113 | read MEMORY_Y CPU "MEMORY_Y" |
@@ -197,44 +205,6 @@ loop: |
197 | 205 | read UART_FIFO_MODULO CPU "UART_FIFO_MODULO" |
198 | 206 | op sub UART_FIFO_CAPACITY UART_FIFO_MODULO 1 |
199 | 207 |
|
200 | | - read uart0_rx_rptr UART0 254 |
201 | | - read uart0_rx_wptr_raw UART0 255 |
202 | | - read uart0_tx_rptr UART0 510 |
203 | | - read uart0_tx_wptr UART0 511 |
204 | | - |
205 | | - op and uart0_rx_wptr uart0_rx_wptr_raw 0xff |
206 | | - |
207 | | - op sub uart0_rx_fifo_size uart0_rx_wptr uart0_rx_rptr |
208 | | - op add uart0_rx_fifo_size uart0_rx_fifo_size UART_FIFO_MODULO |
209 | | - op mod uart0_rx_fifo_size uart0_rx_fifo_size UART_FIFO_MODULO |
210 | | - |
211 | | - op sub uart0_tx_fifo_size uart0_tx_wptr uart0_tx_rptr |
212 | | - op add uart0_tx_fifo_size uart0_tx_fifo_size UART_FIFO_MODULO |
213 | | - op mod uart0_tx_fifo_size uart0_tx_fifo_size UART_FIFO_MODULO |
214 | | - |
215 | | - op equal uart0_rx_full uart0_rx_fifo_size UART_FIFO_CAPACITY |
216 | | - op notEqual uart0_rx_overflow_flag uart0_rx_wptr uart0_rx_wptr_raw |
217 | | - op land uart0_rx_overrun uart0_rx_full uart0_rx_overflow_flag |
218 | | - |
219 | | - read uart1_rx_rptr UART1 254 |
220 | | - read uart1_rx_wptr_raw UART1 255 |
221 | | - read uart1_tx_rptr UART1 510 |
222 | | - read uart1_tx_wptr UART1 511 |
223 | | - |
224 | | - op and uart1_rx_wptr uart1_rx_wptr_raw 0xff |
225 | | - |
226 | | - op sub uart1_rx_fifo_size uart1_rx_wptr uart1_rx_rptr |
227 | | - op add uart1_rx_fifo_size uart1_rx_fifo_size UART_FIFO_MODULO |
228 | | - op mod uart1_rx_fifo_size uart1_rx_fifo_size UART_FIFO_MODULO |
229 | | - |
230 | | - op sub uart1_tx_fifo_size uart1_tx_wptr uart1_tx_rptr |
231 | | - op add uart1_tx_fifo_size uart1_tx_fifo_size UART_FIFO_MODULO |
232 | | - op mod uart1_tx_fifo_size uart1_tx_fifo_size UART_FIFO_MODULO |
233 | | - |
234 | | - op equal uart1_rx_full uart1_rx_fifo_size UART_FIFO_CAPACITY |
235 | | - op notEqual uart1_rx_overflow_flag uart1_rx_wptr uart1_rx_wptr_raw |
236 | | - op land uart1_rx_overrun uart1_rx_full uart1_rx_overflow_flag |
237 | | - |
238 | 208 | # markers |
239 | 209 |
|
240 | 210 | print "ROM_START\n{0}" |
@@ -394,6 +364,20 @@ loop__no_mark_icache: |
394 | 364 | op add ret @counter 1 |
395 | 365 | jump format_hex always |
396 | 366 |
|
| 367 | + print "mtimecmp = {0}\n" |
| 368 | + format mtimecmp |
| 369 | + |
| 370 | + print "time = {0}\n" |
| 371 | + format time |
| 372 | + |
| 373 | + print "cycle = {0}\n" |
| 374 | + format cycle |
| 375 | + |
| 376 | + print "instret = {0}\n\n" |
| 377 | + format instret |
| 378 | + |
| 379 | + #{{'\n'}} {{ print(0, 17) }} |
| 380 | + |
397 | 381 | print "mscratch = {0}\n" |
398 | 382 | set n mscratch |
399 | 383 | op add ret @counter 1 |
@@ -434,21 +418,7 @@ loop__no_mark_icache: |
434 | 418 | op add ret @counter 1 |
435 | 419 | jump format_bin always |
436 | 420 |
|
437 | | - #{{'\n'}} {{ print(0, 17) }} |
438 | | - |
439 | | - print "mtimecmp = {0}\n" |
440 | | - format mtimecmp |
441 | | - |
442 | | - print "time = {0}\n" |
443 | | - format time |
444 | | - |
445 | | - print "cycle = {0}\n" |
446 | | - format cycle |
447 | | - |
448 | | - print "instret = {0}\n\n" |
449 | | - format instret |
450 | | - |
451 | | - #{{'\n'}} {{ print(0, 34) }} |
| 421 | + #{{'\n'}} {{ print(0, 30) }} |
452 | 422 |
|
453 | 423 | # column 2 |
454 | 424 |
|
@@ -560,33 +530,25 @@ loop__no_mark_icache: |
560 | 530 | format "machine" |
561 | 531 | done_privilege_mode: |
562 | 532 |
|
563 | | - print "uart0_rx_size = {0} ({1} -> {2})" |
564 | | - jump uart0_rx_fifo_size__no_overrun notEqual uart0_rx_overrun true |
565 | | - print " !!" |
566 | | -uart0_rx_fifo_size__no_overrun: |
567 | | - format uart0_rx_fifo_size |
568 | | - format uart0_rx_rptr |
569 | | - format uart0_rx_wptr |
570 | | - print "\n" |
| 533 | + set uart UART0 |
| 534 | + set uart_index 0 |
| 535 | + op add ret @counter 1 |
| 536 | + jump format_uart always |
571 | 537 |
|
572 | | - print "uart0_tx_size = {0} ({1} -> {2})\n\n" |
573 | | - format uart0_tx_fifo_size |
574 | | - format uart0_tx_rptr |
575 | | - format uart0_tx_wptr |
| 538 | + set uart UART1 |
| 539 | + set uart_index 1 |
| 540 | + op add ret @counter 1 |
| 541 | + jump format_uart always |
576 | 542 |
|
577 | | - print "uart1_rx_size = {0} ({1} -> {2})" |
578 | | - jump uart1_rx_fifo_size__no_overrun notEqual uart1_rx_overrun true |
579 | | - print " !!" |
580 | | -uart1_rx_fifo_size__no_overrun: |
581 | | - format uart1_rx_fifo_size |
582 | | - format uart1_rx_rptr |
583 | | - format uart1_rx_wptr |
584 | | - print "\n" |
| 543 | + set uart UART2 |
| 544 | + set uart_index 2 |
| 545 | + op add ret @counter 1 |
| 546 | + jump format_uart always |
585 | 547 |
|
586 | | - print "uart1_tx_size = {0} ({1} -> {2})\n" |
587 | | - format uart1_tx_fifo_size |
588 | | - format uart1_tx_rptr |
589 | | - format uart1_tx_wptr |
| 548 | + set uart UART3 |
| 549 | + set uart_index 3 |
| 550 | + op add ret @counter 1 |
| 551 | + jump format_uart always |
590 | 552 |
|
591 | 553 | #{{'\n'}} {{ print(35, 17) }} |
592 | 554 |
|
@@ -753,6 +715,45 @@ format_null: |
753 | 715 | format "null" |
754 | 716 | set @counter ret |
755 | 717 |
|
| 718 | +# uart, uart_index -> |
| 719 | +format_uart: |
| 720 | + read rx_rptr uart 254 |
| 721 | + read rx_wptr_raw uart 255 |
| 722 | + read tx_rptr uart 510 |
| 723 | + read tx_wptr uart 511 |
| 724 | + |
| 725 | + op and rx_wptr rx_wptr_raw 0xff |
| 726 | + |
| 727 | + op sub rx_fifo_size rx_wptr rx_rptr |
| 728 | + op add rx_fifo_size rx_fifo_size UART_FIFO_MODULO |
| 729 | + op mod rx_fifo_size rx_fifo_size UART_FIFO_MODULO |
| 730 | + |
| 731 | + op sub tx_fifo_size tx_wptr tx_rptr |
| 732 | + op add tx_fifo_size tx_fifo_size UART_FIFO_MODULO |
| 733 | + op mod tx_fifo_size tx_fifo_size UART_FIFO_MODULO |
| 734 | + |
| 735 | + op equal rx_full rx_fifo_size UART_FIFO_CAPACITY |
| 736 | + op notEqual rx_overflow_flag rx_wptr rx_wptr_raw |
| 737 | + op land rx_overrun rx_full rx_overflow_flag |
| 738 | + |
| 739 | + print "uart{0}_rx_size = {1} ({2} -> {3})" |
| 740 | + jump format_uart__rx_fifo_size__no_overrun notEqual rx_overrun true |
| 741 | + print " !!" |
| 742 | +format_uart__rx_fifo_size__no_overrun: |
| 743 | + format uart_index |
| 744 | + format rx_fifo_size |
| 745 | + format rx_rptr |
| 746 | + format rx_wptr |
| 747 | + print "\n" |
| 748 | + |
| 749 | + print "uart{0}_tx_size = {1} ({2} -> {3})\n\n" |
| 750 | + format uart_index |
| 751 | + format tx_fifo_size |
| 752 | + format tx_rptr |
| 753 | + format tx_wptr |
| 754 | + |
| 755 | + set @counter ret |
| 756 | + |
756 | 757 | # creates a marker on the ram proc containing a given address |
757 | 758 | # the caller should print a format string with a placeholder for the address |
758 | 759 | # address -> |
@@ -796,6 +797,7 @@ mark_memory__found: |
796 | 797 | setmarker remove mark_memory_id |
797 | 798 | makemarker shapeText mark_memory_id x y false |
798 | 799 | op sub layer 120 mark_memory_id |
| 800 | + op add layer layer MARKER_START_ID |
799 | 801 | setmarker drawLayer mark_memory_id layer |
800 | 802 | setmarker flushText mark_memory_id false |
801 | 803 |
|
|
0 commit comments