📄 clear.lst
字号:
B 118 0036 7a80 CALL CLR ;CLEAR REDUNDANCY ROWS
0037 003b'
B 119
B 120 0038 7a80 CALL END1
0039 00a3'
B 121
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Wed Apr 17 14:45:56 2002
Copyright (c) 1987-1999 Texas Instruments Incorporated
F10 'LF240x FLASH MEMORY PRECONDITION ROUTINE PAGE 5
B 122 003a ef00 RET
B 123
B 124
B 125 ********************************************************************************
B 126 ** SUBROUTINE: CLR **
B 127 ** - READS FLASH ONE WORD AT A TIME IN PROGVER MODE **
B 128 ** - BRANCHES TO NEXTWORD IF FLASH WORD IS PROGRAMMED **
B 129 ** - ENTERS BITMASK IF WORD NEEDS TO BE PROGRAMMED **
B 130 ** **
B 131 ********************************************************************************
B 132 003b CLR
B 133 003b ae66 SPLK #MX_PCNT,PLS_CNT ;INITIALIZE PROGRAM_COUNT
003c 00fa
B 134 003d a860 BLDD #FL_SECST,ADDR ;ADDR -> START OF SECTOR
003e 0068
B 135
B 136 003f bf80 PGVERON LACC #WADDR ;LOAD ADDRESS TO BE PROG
0040 0002
B 137 0041 7a80 CALL SETWADDR
0042 00bd'
B 138 *
B 139 0043 106a LACC FL_CMD
B 140 0044 bfd0 XOR #0004h ;PROGVER CMND
0045 0004
B 141 0046 9061 SACL PAD
B 142 *
B 143 0047 bf80 LACC #CTRL ;INIT PROGVER MODE
0048 0001
B 144 0049 a761 TBLW PAD
B 145 004a SDELAY #T_pvsu ;Wait for T_pvsu(P)
1B 004a bb4e RPT #T_pvsu
1B 004b 8b00 NOP
B 146 *
B 147 004c bf80 LACC #PMPC ;PROGVER EXECUTE
004d 0000
B 148 004e ae61 SPLK #0005h,PAD
004f 0005
B 149 0050 a761 TBLW PAD
B 150
B 151 0051 SDELAY #T_pva_e ;Wait T_pva(E)
1B 0051 bb0a RPT #T_pva_e
1B 0052 8b00 NOP
B 152
B 153 0053 7a80 CALL READWORD
0054 009c'
B 154
B 155 0055 PGVEROFF
B 156 0055 ae65 SPLK #0000h,PAD1 ;CLEAR PMPC
0056 0000
B 157 0057 7a80 CALL CLRCMD
0058 00aa'
B 158
B 159 0059 COMPARE
B 160 0059 1062 LACC READ ;ACC=>VALUE READ DURING VERIFY
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Wed Apr 17 14:45:56 2002
Copyright (c) 1987-1999 Texas Instruments Incorporated
F10 'LF240x FLASH MEMORY PRECONDITION ROUTINE PAGE 6
B 161 005a bfc0 OR #0000h ;OR WITH 0000
005b 0000
B 162 005c e388 BCND NEXTWORD,EQ ;IF = 0 THEN PROGRAMMING DONE
005d 008c'
B 163
B 164
B 165 ********************************************************************************
B 166 ** SUBROUTINE: BITMASK **
B 167 ** **
B 168 ** THIS SECTION ENSURES A MAX OF 8 BITS ARE PROGRAMMED AT A TIME. **
B 169 ** - READ CONTAINS VALUE READ FROM THE FLASH (IN PROGVER MODE) **
B 170 ** - CALLS PROG ONCE MASK IS BUILT **
B 171 ********************************************************************************
B 172
B 173 005e 1062 LACC READ ;acc => value read
B 174 005f bfd0 XOR #0ffffh ;acc => lower bits to be prog
0060 ffff
B 175 0061 9064 SACL DATA,0 ;store acc in DATA
B 176 0062 7a80 CALL PROG ;branch to prog
0063 006d'
B 177
B 178 ********************************************************************************
B 179 ** SUBROUTINE: PGCNT **
B 180 ** - ENTERED FROM HIBYTE **
B 181 ** - CHECKS THAT THE MAX PROGRAM PULSE COUNT HAS **
B 182 ** NOT BEEN EXCEEDED **
B 183 ** - DECREMENTS PROGRAM COUNT **
B 184 ** - INCREMENTS PULSE PER WORD COUNT AR4 **
B 185 ** (CODE OPTIONAL) **
B 186 ** **
B 187 ********************************************************************************
B 188 0064 8b8c PGCNT MAR *,AR4 ;PULSE/WORD COUNT
B 189 0065 8bac MAR *+,AR4
B 190
B 191 0066 1066 LACC PLS_CNT ;ACC=># OF PULSE
B 192 0067 ba01 SUB #1 ;DECREMENT PROGRAM COUNT
B 193 0068 9066 SACL PLS_CNT ;PLS_CNT=># OF PULSES REMAINING
B 194 0069 e388 BCND ERROR,EQ ;IF ACC=0 THEN ERROR
006a 0098'
B 195 006b 7980 B PGVERON ;verify word programmed
006c 003f'
B 196
B 197 ********************************************************************************
B 198 ** SUBROUTINE: PROG **
B 199 ** - CALLED BY LOBYTE OR HIBYTE **
B 200 ** - APPLIES PROGRAM PULSE TO (REQUIRED) BITS **
B 201 ** - "DATA" CONTAINS BITS TO BE PROG **
B 202 ** - WILL PROGRAM BITS IN MAIN ARRAY OR REDUNDANT ROWS **
B 203 ** DEPENDING ON THE STATUS OF "FL_CMD" **
B 204 ** - FL_CMD = 0080h (NOROWRED) **
B 205 ** - FL_CMD = 0100h THEN PROGRAMS ROWREDs **
B 206 ********************************************************************************
B 207 006d bf80 PROG LACC #WDATA ;Load data to be prog
006e 0003
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Wed Apr 17 14:45:56 2002
Copyright (c) 1987-1999 Texas Instruments Incorporated
F10 'LF240x FLASH MEMORY PRECONDITION ROUTINE PAGE 7
B 208 006f a764 TBLW DATA
B 209 *
B 210 0070 106a LACC FL_CMD
B 211 0071 bfd0 XOR #0003h ;PROG CMND
0072 0003
B 212 0073 9061 SACL PAD
B 213 *
B 214 0074 bf80 LACC #CTRL ;Init prog mode
0075 0001
B 215 0076 a761 TBLW PAD
B 216 0077 SDELAY #T_psu_p ;Wait T_psu(P)
1B 0077 bb4e RPT #T_psu_p
1B 0078 8b00 NOP
B 217 *
B 218 0079 bf80 LACC #PMPC ;Turn on prog voltages
007a 0000
B 219 007b ae61 SPLK #0005h,PAD
007c 0005
B 220 007d a761 TBLW PAD
B 221 *
B 222 007e PPW SDELAY #T_prog_e1 ;PROG PULSE WIDTH PART 1
1B 007e bb26 RPT #T_prog_e1
1B 007f 8b00 NOP
B 223 0080 SDELAY #T_prog_e2 ;PROG PULSE WIDTH PART 2
1B 0080 bb26 RPT #T_prog_e2
1B 0081 8b00 NOP
B 224
B 225 ;T_prog(E)=10,000 nsec
B 226
B 227 *
B 228 0082 ae61 SPLK #0000h,PAD ;TURN OFF PROG VOLTAGES
0083 0000
B 229 0084 a761 TBLW PAD
B 230 *
B 231 0085 SDELAY #Tph_P ;Wait T_ph(P) (HOLD TIME).
1B 0085 bb4e RPT #Tph_P
1B 0086 8b00 NOP
B 232 *
B 233 0087 ae65 SPLK #0001h,PAD1 ;CLEAR PMPC AND CNTL
0088 0001
B 234 0089 7a80 CALL CLRCMD
008a 00aa'
B 235 008b ef00 RET
B 236
B 237 ********************************************************************************
B 238 ** SUBROUTINE: NEXTWORD **
B 239 ** -CHECKS IF ADDR IS AT LAST ADDR IN SECTOR **
B 240 ** -INCREMENTS ADDRESS **
B 241 ** -REINITIALIZES PROGRAM PULSE COUNT, FOR **
B 242 ** PROGRAMMING OF NEXT WORD **
B 243 ********************************************************************************
B 244 008c NEXTWORD
B 245 008c 1060 LACC ADDR ;ACC=>ADDR OF CURRENT WORD
B 246 008d 3069 SUB FL_SECEND ;IF CURRENT WORD END OF SEC, DONE
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Wed Apr 17 14:45:56 2002
Copyright (c) 1987-1999 Texas Instruments Incorporated
F10 'LF240x FLASH MEMORY PRECONDITION ROUTINE PAGE 8
B 247 008e e308 BCND NW,NEQ ;WITH SECTOR
008f 0091'
B 248
B 249 0090 ef00 RET ;ELSE NEXT WORD
B 250
B 251 0091 2069 NW ADD FL_SECEND ;CURRENT WORD
B 252 0092 b801 ADD #1 ;INCREMENT ADDR
B 253 0093 9060 SACL ADDR ;STORE ADDR OF NEXT WORD
B 254
B 255 0094 ae66 SPLK #MX_PCNT,PLS_CNT ;Initialize PROGRAM PULSE COUNT
0095 00fa
B 256 0096 7980 B PGVERON ;begin prog of next word
0097 003f'
B 257
B 258 0098 7a80 ERROR CALL END1
0099 00a3'
B 259
B 260
B 261 009a 7980 ERROR1 B err1 ;failed due to exceeding max prgm pulses
009b 001a'
B 262 *
B 263
B 264 ********************************************************************************
B 265 ** SUBROUTINE: READWORD **
B 266 ** - READS WORD AT LOCATION "ADDR" **
B 267 ** - STORES WORD AT "READ" **
B 268 ** - RETURNS TO CALLING ROUTINE IN REGISTER MODE **
B 269 ** **
B 270 ********************************************************************************
B 271 009c READWORD
B 272 009c ACCESS_ARRAY
1B 009c af7f IN 07fh,0ff0fh
009d ff0f
B 273
B 274 009e 1060 LACC ADDR ;Read word flash
B 275 009f a662 TBLR READ ;store word in READ (data space)
B 276
B 277 00a0 ACCESS_REGS
1B 00a0 0c7f OUT 07fh,0ff0fh
00a1 ff0f
B 278
B 279 00a2 ef00 RET
B 280
B 281 ********************************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -