⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.lis

📁 程序下载在M16中后
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 0152           L11:
 0152           L7:
 0152                   .dbline 95
 0152           L4:
 0152                   .dbline 33
 0152 59CF              xjmp L3
 0154           X0:
 0154                   .dbline -2
 0154           L1:
 0154                   .dbline 0 ; func end
 0154 0895              ret
 0156                   .dbsym r rec_data 20 c
 0156                   .dbend
 0156                   .dbfunc e packageProcess _packageProcess fV
 0156           ;         temp16 -> R10,R11
 0156           ;  start_address -> y+2
 0156           ;            cmd -> R14
 0156           ;            tmp -> y+8
 0156           ;      num_bytes -> y+6
 0156           ;              i -> R12,R13
 0156           ;         seqNum -> y+19
                        .even
 0156           _packageProcess::
 0156 1A93              st -y,r17
 0158 0A93              st -y,r16
 015A 0E940000          xcall push_gset5
 015E 2997              sbiw R28,9
 0160                   .dbline -1
 0160                   .dbline 106
 0160           ;       }
 0160           ; }
 0160           ; 
 0160           ;       
 0160           ;       
 0160           ; 
 0160           ; /**********************************************************************
 0160           ; functionName:void packageProcess(uint08 seqNum) 
 0160           ; description:数据包的处理过程
 0160           ; **********************************************************************/               
 0160           ; void packageProcess(uint08 seqNum) 
 0160           ; {
 0160                   .dbline 108
 0160           ;       uint08 cmd;
 0160           ;       uint08 tmp=0;
 0160 0024              clr R0
 0162 0886              std y+8,R0
 0164                   .dbline 110
 0164           ;       uint16 i;
 0164           ;       uint16 num_bytes=0;
 0164 1124              clr R1
 0166 1F82              std y+7,R1
 0168 0E82              std y+6,R0
 016A                   .dbline 111
 016A           ;       uint32 start_address = address;
 016A 20900200          lds R2,_address
 016E 30900300          lds R3,_address+1
 0172 4424              clr R4
 0174 5524              clr R5
 0176 FE01              movw R30,R28
 0178 2282              std z+2,R2
 017A 3382              std z+3,R3
 017C 4482              std z+4,R4
 017E 5582              std z+5,R5
 0180                   .dbline 113
 0180           ;       
 0180           ;       cmd = msg_buffer[0];
 0180 E0900D00          lds R14,_msg_buffer
 0184                   .dbline 115
 0184           ;       //命令CMD_SIGN_ON
 0184           ;       if(cmd==CMD_SIGN_ON)
 0184 8E2D              mov R24,R14
 0186 8130              cpi R24,1
 0188 B1F4              brne L29
 018A                   .dbline 116
 018A           ;       {
 018A                   .dbline 117
 018A           ;               num_bytes = 11;
 018A 8BE0              ldi R24,11
 018C 90E0              ldi R25,0
 018E 9F83              std y+7,R25
 0190 8E83              std y+6,R24
 0192                   .dbline 118
 0192           ;               msg_buffer[0] = CMD_SIGN_ON;
 0192 81E0              ldi R24,1
 0194 80930D00          sts _msg_buffer,R24
 0198                   .dbline 119
 0198           ;               msg_buffer[1] = STATUS_CMD_OK;
 0198 2224              clr R2
 019A 20920E00          sts _msg_buffer+1,R2
 019E                   .dbline 120
 019E           ;               msg_buffer[2] = 8;
 019E 88E0              ldi R24,8
 01A0 80930F00          sts _msg_buffer+2,R24
 01A4                   .dbline 121
 01A4           ;               memcpy(msg_buffer+3,"STK500_2",8);
 01A4 9983              std y+1,R25
 01A6 8883              std y+0,R24
 01A8 20E0              ldi R18,<L34
 01AA 30E0              ldi R19,>L34
 01AC 00E0              ldi R16,<_msg_buffer+3
 01AE 10E0              ldi R17,>_msg_buffer+3
 01B0 0E940000          xcall _memcpy
 01B4                   .dbline 122
 01B4           ;       }
 01B4 83C1              xjmp L30
 01B6           L29:
 01B6                   .dbline 124
 01B6           ;       //命令CMD_SET_PARAMETER
 01B6           ;       else if(cmd==CMD_SET_PARAMETER)
 01B6 8E2D              mov R24,R14
 01B8 8230              cpi R24,2
 01BA 51F4              brne L35
 01BC                   .dbline 125
 01BC           ;       {
 01BC                   .dbline 126
 01BC           ;               num_bytes = 2;
 01BC 82E0              ldi R24,2
 01BE 90E0              ldi R25,0
 01C0 9F83              std y+7,R25
 01C2 8E83              std y+6,R24
 01C4                   .dbline 127
 01C4           ;               msg_buffer[0] = CMD_SET_PARAMETER;
 01C4 80930D00          sts _msg_buffer,R24
 01C8                   .dbline 128
 01C8           ;               msg_buffer[1] = STATUS_CMD_OK;
 01C8 2224              clr R2
 01CA 20920E00          sts _msg_buffer+1,R2
 01CE                   .dbline 129
 01CE           ;       }
 01CE 76C1              xjmp L36
 01D0           L35:
 01D0                   .dbline 131
 01D0           ;       //命令CMD_GET_PARAMETER
 01D0           ;       else if(cmd==CMD_GET_PARAMETER)
 01D0 8E2D              mov R24,R14
 01D2 8330              cpi R24,3
 01D4 B1F5              brne L38
 01D6                   .dbline 132
 01D6           ;       {
 01D6                   .dbline 133
 01D6           ;               switch(msg_buffer[1])
 01D6 A0900E00          lds R10,_msg_buffer+1
 01DA BB24              clr R11
 01DC C501              movw R24,R10
 01DE 8239              cpi R24,146
 01E0 E0E0              ldi R30,0
 01E2 9E07              cpc R25,R30
 01E4 91F0              breq L44
 01E6 8439              cpi R24,148
 01E8 E0E0              ldi R30,0
 01EA 9E07              cpc R25,R30
 01EC A9F0              breq L46
 01EE 8539              cpi R24,149
 01F0 E0E0              ldi R30,0
 01F2 9E07              cpc R25,R30
 01F4 A1F0              breq L47
 01F6 8239              cpi R24,146
 01F8 E0E0              ldi R30,0
 01FA 9E07              cpc R25,R30
 01FC 9CF0              brlt L40
 01FE           L48:
 01FE C501              movw R24,R10
 0200 8E39              cpi R24,158
 0202 E0E0              ldi R30,0
 0204 9E07              cpc R25,R30
 0206 21F0              breq L45
 0208 0DC0              xjmp L40
 020A           X2:
 020A                   .dbline 134
 020A           ;               {
 020A           L44:
 020A                   .dbline 148
 020A           ;                       /*case PARAM_BUILD_NUMBER_LOW:
 020A           ;                               tmp = CONFIG_PARAM_BUILD_NUMBER_LOW;
 020A           ;                               break;
 020A           ;                       case PARAM_BUILD_NUMBER_HIGH:
 020A           ;                               tmp = CONFIG_PARAM_BUILD_NUMBER_HIGH;
 020A           ;                               break;
 020A           ;                       case PARAM_HW_VER:
 020A           ;                               tmp = CONFIG_PARAM_HW_VER;
 020A           ;                               break;
 020A           ;                       case PARAM_SW_MAJOR:
 020A           ;                               tmp = CONFIG_PARAM_SW_MAJOR;
 020A           ;                               break;*/
 020A           ;                       case PARAM_SW_MINOR:
 020A           ;                               tmp = CONFIG_PARAM_SW_MINOR;
 020A 84E0              ldi R24,4
 020C 8887              std y+8,R24
 020E                   .dbline 149
 020E           ;                               break;
 020E 0CC0              xjmp L41
 0210           L45:
 0210                   .dbline 151
 0210           ;                       case PARAM_RESET_POLARITY:
 0210           ;                               tmp = resetPolarity;
 0210 20900900          lds R2,_resetPolarity
 0214 2886              std y+8,R2
 0216                   .dbline 152
 0216           ;                               break;
 0216 08C0              xjmp L41
 0218           L46:
 0218                   .dbline 154
 0218           ;                       case PARAM_VTARGET:                             //目标电压
 0218           ;                               tmp = 50;
 0218 82E3              ldi R24,50
 021A 8887              std y+8,R24
 021C                   .dbline 155
 021C           ;                               break;  
 021C 05C0              xjmp L41
 021E           L47:
 021E                   .dbline 157
 021E           ;                       case PARAM_VADJUST:
 021E           ;                               tmp = 50;                               //参考电压
 021E 82E3              ldi R24,50
 0220 8887              std y+8,R24
 0222                   .dbline 158
 0222           ;                               break;
 0222 02C0              xjmp L41
 0224           L40:
 0224                   .dbline 169
 0224           ;                       /*case PARAM_TOPCARD_DETECT:
 0224           ;                               tmp = TOP_CARD_STK520;
 0224           ;                               break;
 0224           ;                       case PARAM_CONTROLLER_INIT:
 0224           ;                               tmp = paramControllerInit;
 0224           ;                               break;
 0224           ;                       case PARAM_SCK_DURATION:
 0224           ;                               tmp = clockSpeed;
 0224           ;                               break;*/
 0224           ;                       default:
 0224           ;                               tmp = CONFIG_PARAM_SW_MAJOR;
 0224 82E0              ldi R24,2
 0226 8887              std y+8,R24
 0228                   .dbline 170
 0228           ;                               break;          
 0228           L41:
 0228                   .dbline 172
 0228           ;               }
 0228           ;               num_bytes = 3;
 0228 83E0              ldi R24,3
 022A 90E0              ldi R25,0
 022C 9F83              std y+7,R25
 022E 8E83              std y+6,R24
 0230                   .dbline 173
 0230           ;               msg_buffer[0] = CMD_GET_PARAMETER;
 0230 80930D00          sts _msg_buffer,R24
 0234                   .dbline 174
 0234           ;               msg_buffer[1] = STATUS_CMD_OK;
 0234 2224              clr R2
 0236 20920E00          sts _msg_buffer+1,R2
 023A                   .dbline 175
 023A           ;               msg_buffer[2] = tmp;
 023A 0884              ldd R0,y+8
 023C 00920F00          sts _msg_buffer+2,R0
 0240                   .dbline 176
 0240           ;       }
 0240 3DC1              xjmp L39
 0242           L38:
 0242                   .dbline 185
 0242           ;       //命令CMD_OSCCAL
 0242           ;       /*else if(cmd==CMD_OSCCAL)
 0242           ;       {
 0242           ;               num_bytes = 2;
 0242           ;               msg_buffer[0] = CMD_OSCCAL;
 0242           ;               msg_buffer[1] = STATUS_CMD_OK;
 0242           ;       }*/
 0242           ;       //命令CMD_LOAD_ADDRESS
 0242           ;       else if(cmd==CMD_LOAD_ADDRESS)
 0242 8E2D              mov R24,R14
 0244 8630              cpi R24,6
 0246 59F5              brne L51
 0248                   .dbline 186
 0248           ;       {
 0248                   .dbline 189
 0248           ;               //address =  ((unsigned long)msg_buffer[1])<<24;
 0248           ;               //address |= ((unsigned long)msg_buffer[2])<<16;
 0248           ;               address = ((unsigned long)msg_buffer[3])<<8;
 0248 88E0              ldi R24,8
 024A 90E0              ldi R25,0
 024C 20901000          lds R2,_msg_buffer+3
 0250 3324              clr R3
 0252 4424              clr R4
 0254 5524              clr R5
 0256 8A93              st -y,R24
 0258 8101              movw R16,R2
 025A 9201              movw R18,R4
 025C 0E940000          xcall lsl32
 0260 10930300          sts _address+1,R17
 0264 00930200          sts _address,R16
 0268                   .dbline 190
 0268           ;               address |= ((unsigned long)msg_buffer[4]);
 0268 20901100          lds R2,_msg_buffer+4
 026C 3324              clr R3
 026E 4424              clr R4
 0270 5524              clr R5
 0272 3801              movw R6,R16
 0274 8824              clr R8
 0276 9924              clr R9
 0278 6228              or R6,R2
 027A 7328              or R7,R3
 027C 8428              or R8,R4
 027E 9528              or R9,R5
 0280 70920300          sts _address+1,R7
 0284 60920200          sts _address,R6
 0288                   .dbline 191
 0288           ;               num_bytes = 2;
 0288 82E0              ldi R24,2
 028A 90E0              ldi R25,0
 028C 9F83              std y+7,R25
 028E 8E83              std y+6,R24
 0290                   .dbline 192
 0290           ;               msg_buffer[0] = CMD_LOAD_ADDRESS;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -