📄 c2xx_bpx.lst
字号:
C:\TIC2XX\C2000\CGTOOLS\BIN\DSPA.EXE -S -l c2xx_bpx -v2xx
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Sun May 6 00:03:29 2001
Copyright (c) 1987-1999 Texas Instruments Incorporated
c2xx_bpx.asm PAGE 1
1 ;**************************************************************************
2 ; FILENAME: c2xxprog.asm - Generic name
3 ; c2xx_bpx.asm
4 ;
5 ; DESCRIPTION:
6 ; Flash Programmer control module with flash algorithms -P
7 ; called by the JTAG loader, PRG2xxw.exe
8 ; Uses the on-chip B0/1 RAM for algorithms and flash data buffer
9 ;
10 ; GLOBALS:
11 ;
12 ; unsigned * PRG_bufaddr Address of buffer for flash/program data
13 ; unsigned PRG_bufsize Size of program data buffer
14 ; unsigned PRG_devsize Size of programmable device
15 ; unsigned * PRG_paddr First programming address
16 ; unsigned PRG_page Programming page
17 ; unsigned PRG_length Length of programming data
18 ; unsigned PRG_status Status of programming functions
19 ;
20 ; PUBLIC FUNCTIONS:
21 ; PRG_init Initialize system for programming
22 ; PRG_program Program a block
23 ; PRG_erase Erase a programmable device
24 ; PRG_verify Verify a block
25 ;
26 ; PRIVIATE FUNCTIONS:
27 ; None
28 ;
29 ; USAGE/LIMITATIONS
30 ; The global and public function symbol values must be available in the
31 ; COFF file for the loader to work properly. The functions are not
32 ; intended to be called by another program.
33 ;
34 ; NOTES:
35 ; The program needs three memory sections to operate:
36 ; Actual location of these sections in the memory is defined in the
37 ; linker command file - *.cmd
38 ;
39 ; PRG_text Executable section for this program
40 ; PRG_parms Variable section for this program
41 ; PRG_data Data buffer used to hold programming data
42 ;
43 ; The size and location of each section is user defined. The
44 ; loader program will read the value of PRG_bufaddr and PRG_bufsize to
45 ; determine the location and size of the PRG_data section.
46 ;
47 ; JTAG loader command file format
48 ; PRG2xxw -[options] c2xxprog.out Flashcode.out
49 ; <JTAG loader) <Flash algorithm> <COFF file to be flashed>
50 ;
51 ; Source : TI Tools group, Houston
52 ; Version : 2.0
53 ;
54 ; Modification History:
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Sun May 6 00:03:29 2001
Copyright (c) 1987-1999 Texas Instruments Incorporated
c2xx_bpx.asm PAGE 2
55 ; ---------------------
56 ; -Modified for F2xx devices: Sam Saba, TI Houston 12/24/96
57 ; -Added appropriate init code for PLL & WD disable - 15 Jan 97 (DAF)
58 ; -Added Conditional assembly for PLL Mult factor selection - 26 Feb 97 (DAF)
59 ; -Modified for: Compatibility with -s option and new algorithms.
60 ; Ruben D. Perez, TI Houston 09/10/97
61 ; -Modified to suit 24x-Lite - 19 Mar 98 (DAF-19MAR)
62
63 ;*******************************************************************************
64 ; INCLUDE FILES
65 ;*******************************************************************************
66
67
68 .INCLUDE ..\INCLUDE\VAR.h ;GET VARIABLES AND CONSTANTS.
69 .INCLUDE PGM_ALG.ASM ;PROGRAM ROUTINE
C 69
C 70
C 71
C 72
C 73 ********************************************************************************
C 74 ; Define Short DELAY loop macro.
C 75 ; This will be used to generate a short delay less than (255 * 50ns) 12.75 us
C 76 ********************************************************************************
C 77
C 78 SDELAY .macro COUNT
C 79 RPT COUNT
C 80 NOP
C 81 .endm
C 82
C 83 ********************************************************************************
C 84 ** THE FOLLOWING PROGRAM WILL PRECONDITION A SECTOR **
C 85 ** - INCLUDE FILE, VARx_x.h, DETERMINES WHICH ARRAY AND SECTOR **
C 86 ** **
C 87 ********************************************************************************
C 88
C 89 0000 PROGRAM
C 90 0000 bc00 LDP #0 ;DP => 0
C 91 0001 8b89 MAR *,AR1
C 92
C 93 *******************************************************************************
C 94 ** SUBROUTINE: ENABL **
C 95 ** - PLACE FLASH IN REGISTER MODE **
C 96 ** - ENABLES SECTOR **
C 97 ** - WRITES A ONE TO THE APPROPRIATE "ENABLE" REG **
C 98 ** **
C 99 *******************************************************************************
C 100 0002 ENABL ACCESS_REGS
1C 0002 0c7f OUT 07fh,0ff0fh
0003 ff0f
C 101
C 102 0004 bf80 LACC #SECT ;ENABLE SECTOR
0005 0006
C 103 0006 a861 BLDD #SECTOR,PAD
0007 0070
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Sun May 6 00:03:29 2001
Copyright (c) 1987-1999 Texas Instruments Incorporated
c2xx_bpx.asm PAGE 3
C 104 0008 a761 TBLW PAD
C 105
C 106 0009 bf80 LACC #ENAB ;ENABLE CORE
000a 0005
C 107 000b ae61 SPLK #0001h,PAD
000c 0001
C 108 000d a761 TBLW PAD
C 109 ********************************************************************************
C 110 000e ae6a SPLK #0000,FL_CMD ;
000f 0000
C 111 0010 a97a BLDD DATA0,#DATA ;LOAD FIRST DATA VALUE TO BE PROG
0011 0064
C 112 ********************************************************************************
C 113 ** SUBROUTINE: CLR **
C 114 ** - READS FLASH ONE WORD AT A TIME IN PROGVER MODE **
C 115 ** - BRANCHES TO NEXTWORD IF FLASH WORD IS PROGRAMMED **
C 116 ** - ENTERS BITMASK IF WORD NEEDS TO BE PROGRAMMED **
C 117 ** **
C 118 ********************************************************************************
C 119 0012 CLR
C 120 0012 ae66 SPLK #MX_PCNT,PLS_CNT ;INITIALIZE PROGRAM_COUNT
0013 00fa
C 121 0014 PGVERON
C 122 0014 bf80 LACC #WADDR ;LOAD ADDRESS TO BE PROG
0015 0002
C 123 0016 7a80 CALL SETWADDR
0017 0000+
C 124
C 125 *
C 126 0018 106a LACC FL_CMD
C 127 0019 bfd0 XOR #0004h ;PROGVER CMND
001a 0004
C 128 001b 9061 SACL PAD
C 129 *
C 130 001c bf80 LACC #CTRL ;INIT PROGVER MODE
001d 0001
C 131 001e a761 TBLW PAD
C 132 001f SDELAY #T_pvsu ;Wait for T_pvsu(P)
1C 001f bb0a RPT #T_pvsu
1C 0020 8b00 NOP
C 133 *
C 134 0021 bf80 LACC #PMPC ;PROGVER EXECUTE
0022 0000
C 135 0023 ae61 SPLK #0005h,PAD
0024 0005
C 136 0025 a761 TBLW PAD
C 137
C 138 0026 SDELAY #T_pva_e ;Wait T_pva(E)
1C 0026 bb0c RPT #T_pva_e
1C 0027 8b00 NOP
C 139
C 140 0028 7a80 CALL READWORD
0029 007a+
C 141
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Sun May 6 00:03:29 2001
Copyright (c) 1987-1999 Texas Instruments Incorporated
c2xx_bpx.asm PAGE 4
C 142 002a PGVEROFF
C 143 002a ae65 SPLK #0000h,PAD1 ;CLEAR PMPC
002b 0000
C 144 002c 7a80 CALL CLRCMD
002d 0090+
C 145 ********************************************************************************
C 146 ** SUBROUTINE: COMPARE **
C 147 ** - XOR DATA READ DURING VERIFY WITH **
C 148 ** DESIRED VALUE TO OBTAIN BITS THAT NEED **
C 149 ** TO BE PROG **
C 150 ** - IF FLASH = DESIRED BRANCH TO NEXT WORD **
C 151 ** ELSE BUILD MASK (STORE IN READ) **
C 152 ********************************************************************************
C 153 002e COMPARE
C 154 002e 6962 LACL READ ;ACC=>VALUE READ DURING VERIFY
C 155 002f 017a LAR AR1,DATA0 ;LOAD AR1 WITH ADDRESS OF DATA
C 156 0030 a980 BLDD *,#0064h ;LOAD DATA WITH DATA TO BE LOADED
0031 0064
C 157 0032 6c64 XOR DATA ;XOR WITH DESIRED DATA
C 158 0033 e388 BCND NEXTWORD,EQ ;IF = 0 THEN PROGRAMMING DONE
0034 0061+
C 159 0035 9062 SACL READ ;STORE MASK IN READ
C 160
C 161 ********************************************************************************
C 162 ** SUBROUTINE: BITMASK **
C 163 ** **
C 164 ** THIS SECTION ENSURES A MAX OF 8 BITS ARE PROGRAMMED AT A TIME. **
C 165 ** - READ CONTAINS MASK **
C 166 ** - CALLS PROG ONCE BITMASK IS BUILT **
C 167 ********************************************************************************
C 168
C 169
C 170 0036 bfd0 XOR #0ffffh ;acc => lower bits to be prog
0037 ffff
C 171 0038 9064 SACL DATA,0 ;store acc in DATA
C 172 0039 7a80 CALL PROG ;branch to prog
003a 0042+
C 173
C 174 ********************************************************************************
C 175 ** SUBROUTINE: PGCNT **
C 176 ** - ENTERED FROM HIBYTE **
C 177 ** - CHECKS THAT THE MAX PROGRAM PULSE COUNT HAS **
C 178 ** NOT BEEN EXCEEDED **
C 179 ** - DECREMENTS PROGRAM PULSE COUNT **
C 180 ** **
C 181 ** **
C 182 ** **
C 183 ********************************************************************************
C 184 003b PGCNT
C 185 003b 1066 LACC PLS_CNT ;ACC=># OF PULSE
C 186 003c ba01 SUB #1 ;DECREMENT PROGRAM COUNT
C 187 003d 9066 SACL PLS_CNT ;PLS_CNT=># OF PULSES REMAINING
C 188 003e e388 BCND ERROR,EQ ;IF ACC=0 THEN ERROR
003f 0074+
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Sun May 6 00:03:29 2001
Copyright (c) 1987-1999 Texas Instruments Incorporated
c2xx_bpx.asm PAGE 5
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -