📄 boot5402.lst
字号:
00015e 0135+
508 00015f 7181 mvdk *ar1, temp2 ; temp2 <-- drr0 (DUMMY WORD)
000160 006B
509 000161 F074 call ser_in ; call SP input sub
000162 0135+
510 000163 7181 mvdk *ar1, temp3 ; temp3 <-- drr0 (DUMMY WORD)
000164 006C
511
512 000165 F074 call ser_in ; call SP input sub
000166 0135+
513 000167 7181 mvdk *ar1, xentry ; xentry <-- drr0 (XPC of entry point)
000168 0061
514
515 000169 F074 call ser_in ; call SP input sub
00016a 0135+
TMS320C54x COFF Assembler Version 3.50 Thu Feb 03 13:21:23 2000
Copyright (c) 1996-1999 Texas Instruments Incorporated
bootVC5402 PAGE 13
516 00016b 7181 mvdk *ar1, entry ; temp0 <-- drr0 (entry point)
00016c 0062
517
518 00016d SP16_in_1
519 00016d F074 call ser_in ; call SP input sub
00016e 0135+
520 00016f 1281 ldu *ar1, a ; acc A <-- drr0 (section size)
521 000170 FA45 bcd endboot,aeq ; section size =0 indicate boot end
000171 00C2+
522 000172 F110 sub #1,a,b ; brc = section size - 1
000173 0001
523 000174 891A stlm b, brc ; update block repeat counter register
524 000175 F074 call ser_in ; call SP input sub
000176 0135+
525 000177 7181 mvdk *ar1, dest ; xentry <-- drr0 (XPC of dest)
000178 0066
526 000179 F074 call ser_in ; call SP input sub
00017a 0135+
527 00017b 1281 ldu *ar1, a ; acc A <-- destination addr
528 00017c 3C66 add @dest, 16, a ;
529 00017d F072 rptb sfxr16_in-1
00017e 0184+
530 00017f F074 call ser_in ; call SP input sub
000180 0135+
531 000181 1381 ldu *ar1, b ; acc B <-- drr0 (input dada)
532 000182 7F0B writa @BL ; [acc A] <-- acc BL
533 000183 F000 add #1, a ; increment dest add
000184 0001
534 000185 sfxr16_in
535 000185 F073 b SP16_in_1 ; check next section
000186 016D+
536
537 *****************************************************************
538 * 8-bit mode input clk,frm *
539 *****************************************************************
540 000187 DBsreadA
541 000187 F074 call ser_in ; call SP input sub
000188 0135+
542 000189 6F81 ld *ar1, 8, a ; acc A <-- junkbyte.high byte
00018a 0C48
543 00018b F030 and #0ff00h, a ; acc A <-- high.byte
00018c FF00
544 00018d 8063 stl a, @hbyte ; save high byte
545 00018e F074 call ser_in ; call SP input sub
00018f 0135+
546 000190 1281 ldu *ar1, a ; acc A <-- junkbyte.low byte
547 000191 F030 and #0ffh, a ; acc A <-- low byte
000192 00FF
548 000193 1A63 or @hbyte, a ; acc A <-- high byte.low byte
549 000194 FC00 ret
550
551 000195 SP_in_8
552 000195 4881 ldm *ar1, a ; acc A <-- DRR
553 000196 F010 sub #0008h, a ; acc A = 0008
000197 0008
TMS320C54x COFF Assembler Version 3.50 Thu Feb 03 13:21:23 2000
Copyright (c) 1996-1999 Texas Instruments Incorporated
bootVC5402 PAGE 14
554 000198 FC44 rc aneq
555 000199 F074 call ser_in ; call SP input sub
00019a 0135+
556 00019b 4881 ldm *ar1, a ; acc A <-- DRR
557 00019c F010 sub #0AAh, a ; acc A = 00aa
00019d 00AA
558 00019e FC44 rc aneq
559
560 00019f ser_08
561 ;The dummy words are read to maintain
562 ; hex converter compatibility with
563 ; the 548/549
564
565 00019f F074 call DBsreadA ; call SP double read byte from DRR
0001a0 0187+
566 0001a1 8069 stl a, @temp0 ; save DUMMY WORD value in temp0
567 0001a2 F074 call DBsreadA ; call SP double read byte from DRR
0001a3 0187+
568 0001a4 806A stl a, @temp1 ; save DUMMY WORD value in temp1
569 0001a5 F074 call DBsreadA ; call SP double read byte from DRR
0001a6 0187+
570 0001a7 806B stl a, @temp2 ; save DUMMY WORD value in temp2
571 0001a8 F074 call DBsreadA ; call SP double read byte from DRR
0001a9 0187+
572 0001aa 806C stl a, @temp3 ; save DUMMY WORD value in temp3
573
574 0001ab F074 call DBsreadA ; call SP double read byte from DRR
0001ac 0187+
575 0001ad 8061 stl a, @xentry ; save XPC entry point
576
577 0001ae F074 call DBsreadA ; call SP double read byte from DRR
0001af 0187+
578 0001b0 8062 stl a, @entry ; save entry point
579
580 0001b1 F074 SP08_1 call DBsreadA ; call SP double read byte from DRR
0001b2 0187+
581 ; read section size
582 0001b3 FA45 bcd endboot,aeq ; section size =0 indicate boot end
0001b4 00C2+
583 0001b5 F110 sub #1,a,b ; brc = section size - 1
0001b6 0001
584 0001b7 891A stlm b, brc ; update block repeat counter register
585 0001b8 F074 call DBsreadA ; call SP double read byte from DRR
0001b9 0187+
586 ; read XPC of destination address
587 0001ba 8066 stl a,@dest ; XPC of destination
588 0001bb F074 call DBsreadA ; call SP double read byte from DRR
0001bc 0187+
589 ; read destination address
590 0001bd 3C66 add @dest, 16, a ;
591 0001be F072 rptb sfxr08-1
0001bf 01CF+
592 0001c0 F074 call ser_in ; call SP input sub
0001c1 0135+
593 0001c2 6F81 ld *ar1, 8, b ; acc B <-- junkbyte.high byte
TMS320C54x COFF Assembler Version 3.50 Thu Feb 03 13:21:23 2000
Copyright (c) 1996-1999 Texas Instruments Incorporated
bootVC5402 PAGE 15
0001c3 0D48
594 0001c4 F330 and #0ff00h, b ; acc B <-- high.byte
0001c5 FF00
595 0001c6 8163 stl b, @hbyte ; save high byte
596 0001c7 F074 call ser_in ; call SP input sub
0001c8 0135+
597 0001c9 1381 ldu *ar1, b ; acc B <-- junkbyte.low byte
598 0001ca F330 and #0ffh, b ; acc B <-- low byte
0001cb 00FF
599 0001cc 1B63 or @hbyte, b ; acc B <-- high byte.low byte
600 0001cd 7F0B writa @BL ; [acc A] <-- acc BL
601 0001ce F000 add #1, a ; increment dest add
0001cf 0001
602 0001d0 sfxr08
603 0001d0 F073 b SP08_1 ; check next section
0001d1 01B1+
604
605
606 *************************************************************************
607 *** SPIBOOT - This routine reads a boot-table from an SPI EEPROM through
608 *** McBSP1. 1/27/99 RDP
609 *************************************************************************
610 0001d2 SPIBOOT
611 *** Initialize the McBSP1 for SPI mode. ******************************
612 0001d2 7714 stm SPSA1, ar4 ;AR4->SPSA1
0001d3 0048
613 0001d4 7715 stm dxr11-1, ar5 ;AR5->DXR21
0001d5 0042
614 0001d6 E8F9 ld #249, a ;Bit-rate divisor (.4Mhz @100MIPs)
615 0001d7 F7BD ssbx XF ;Drive XF high - optional hold feature.
616 0001d8 F074 call SPI_INIT ;Initialize McBSP.
0001d9 0000!
617 ***************************************************
618 ***** Start reading EEPROM. *****
619 ***************************************************
620 0001da 7713 stm #0, AR3 ;Init address to read from.
0001db 0000
621 0001dc F074 call SPI_READ ;Read address 0.
0001dd 0000!
622 0001de F050 xor #08h,a ;Checking for boot-table (08AAh)
0001df 0008
623 0001e0 F844 bc parallel, aneq ;If not 08h, no-go. Branch to parallel.
0001e1 0031+
624 0001e2 6D93 mar *AR3+ ;increment address
625 0001e3 F074 call SPI_READ ;Read address 1.
0001e4 0000!
626 0001e5 F050 xor #0AAh,a ;Checking for boot-table (08AAh)
0001e6 00AA
627 0001e7 F844 bc parallel, aneq ;If not AAh, no-go. Branch to serial init.
0001e8 0031+
628 ***************************************************
629 ***** If here then booting.************************
630 ***** The next eight addresses are skipped *****
631 ***** to maintain hex converter compatibility *****
632 ***** with the 548/549 serial boot-table *****
TMS320C54x COFF Assembler Version 3.50 Thu Feb 03 13:21:23 2000
Copyright (c) 1996-1999 Texas Instruments Incorporated
bootVC5402 PAGE 16
633 ***************************************************
634 0001e9 7713 stm #0ah, AR3 ;Init address to read from.
0001ea 000A
635 0001eb F074 call SPI_READ ;Read address 0ah.
0001ec 0000!
636 0001ed 6F61 stl a, 8, xentry ;Store xentry high-byte.
0001ee 0C88
637 0001ef 6D93 mar *ar3+ ;increment address
638 0001f0 F074 call SPI_READ ;Read address 0fh.
0001f1 0000!
639 0001f2 1A61 or xentry, a ;And xentry high-byte and low-byte.
640 0001f3 8061 stl a, xentry ;Store XPC entry point.
641
642 0001f4 6D93 mar *ar3+ ;Increment address.
643 0001f5 F074 call SPI_READ ;Read address 010h.
0001f6 0000!
644 0001f7 6F62 stl a, 8, entry ;Store entry high-byte.
0001f8 0C88
645 0001f9 6D93 mar *ar3+ ;increment address
646 0001fa F074 call SPI_READ ;Read address 011h.
0001fb 0000!
647 0001fc 1A62 or entry, a ;And entry high-byte and low-byte.
648 0001fd 8062 stl a, entry ;Store PC entry point.
649 0001fe 6D93 mar *ar3+ ;increment address
650
651 0001ff F074 SPISECT call SPI_READ ;Read address 0ch.
000200 0000!
652 000201 6F69 stl a, 8, temp0 ;Store size high-byte.
000202 0C88
653 000203 6D93 mar *ar3+ ;Increment address.
654 000204 F074 call SPI_READ ;Read address 0dh.
000205 0000!
655 000206 1A69 or temp0, a ;And size high-byte and low-byte.
656 000207 F845 bc SPIEND, aeq ;If size = 0, done.
000208 0234+
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -