亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? atmega128iap.lst

?? atmega128在線升級程序
?? LST
?? 第 1 頁 / 共 2 頁
字號:
__start:
__text_start:
    FC5B E001      LDI	R16,1
    FC5C BF05      OUT	0x35,R16
    FC5D E002      LDI	R16,2
    FC5E BF05      OUT	0x35,R16
    FC5F EFCF      LDI	R28,0xFF
    FC60 E1D0      LDI	R29,0x10
    FC61 BFCD      OUT	0x3D,R28
    FC62 BFDE      OUT	0x3E,R29
    FC63 51C0      SUBI	R28,0x10
    FC64 40D0      SBCI	R29,0
    FC65 EA0A      LDI	R16,0xAA
    FC66 8308      STD	Y+0,R16
    FC67 2400      CLR	R0
    FC68 E0E4      LDI	R30,4
    FC69 E0F1      LDI	R31,1
    FC6A E012      LDI	R17,2
    FC6B 30E4      CPI	R30,4
    FC6C 07F1      CPC	R31,R17
    FC6D F011      BEQ	0xFC70
    FC6E 9201      ST	R0,Z+
    FC6F CFFB      RJMP	0xFC6B
    FC70 8300      STD	Z+0,R16
    FC71 EBE2      LDI	R30,0xB2
    FC72 EFF8      LDI	R31,0xF8
    FC73 E0A0      LDI	R26,0
    FC74 E0B1      LDI	R27,1
    FC75 EF18      LDI	R17,0xF8
    FC76 E001      LDI	R16,1
    FC77 BF0B      OUT	0x3B,R16
    FC78 3BE6      CPI	R30,0xB6
    FC79 07F1      CPC	R31,R17
    FC7A F021      BEQ	0xFC7F
    FC7B 95D8      ELPM
    FC7C 9631      ADIW	R30,1
    FC7D 920D      ST	R0,X+
    FC7E CFF9      RJMP	0xFC78
    FC7F D0B9      RCALL	_main
_exit:
    FC80 CFFF      RJMP	_exit
_boot_page_ew:
  code                 --> Y+4
  p_address            --> Y+0
    FC81 940EFE02  CALL	push_arg4
FILE: E:\宇能工作盤\YN3010\IAP\ATEMGA128IAP.C
(0001) /***************************************************** 
(0002) 采用串行接口實現Boot_load應用的實例 
(0003) 華東師大電子系 馬 潮 2004.07 
(0004) Compiler:    ICC-AVR 6.31 
(0005) Target:    Mega128 
(0006) Crystal:    16Mhz 
(0007) Used:        T/C0,USART0 
(0008) *****************************************************/ 
(0009) #include <iom128v.h> 
(0010) #define SPM_PAGESIZE 256              
(0011) //M128/的一個Flash頁為256字節(128字) 
(0012) #define BAUD 38400                
(0013) //波特率采用38400bps 
(0014) #define CRYSTAL 16000000            
(0015) //系統時鐘16MHz 
(0016) //計算和定義M128的波特率設置參數 
(0017) #define BAUD_SETTING (unsigned char)((unsigned long)CRYSTAL/(16*(unsigned long)BAUD)-1) 
(0018) #define BAUD_H (unsigned char)(BAUD_SETTING>>8) 
(0019) #define BAUD_L (unsigned char)BAUD_SETTING 
(0020) 
(0021) #define DATA_BUFFER_SIZE SPM_PAGESIZE        
(0022) //定義接收緩沖區長度 
(0023) //定義Xmoden控制字符 
(0024) #define XMODEM_NUL 0x00 
(0025) #define XMODEM_SOH 0x01 
(0026) #define XMODEM_STX 0x02 
(0027) #define XMODEM_EOT 0x04 
(0028) #define XMODEM_ACK 0x06 
(0029) #define XMODEM_NAK 0x15 
(0030) #define XMODEM_CAN 0x18 
(0031) #define XMODEM_EOF 0x1A 
(0032) #define XMODEM_RECIEVING_WAIT_CHAR 'C' 
(0033) //定義全局變量 
(0034) const char startupString[]="Type 'd' download, Others run app.\n\r\0"; 
(0035) char data[DATA_BUFFER_SIZE]; 
(0036) long address = 0; 
(0037) //擦除(code=0x03)和寫入(code=0x05)一個Flash頁 
(0038) void boot_page_ew(long p_address,char code) 
(0039) { 
(0040)     asm("mov r30,r16\n" 
    FC83 2FE0      MOV	R30,R16
    FC84 2FF1      MOV	R31,R17
    FC85 BF2B      OUT	0x3B,R18
(0041)         "mov r31,r17\n" 
(0042)         "out 0x3b,r18\n");            //將頁地址放入Z寄存器和RAMPZ的Bit0中 
(0043)     SPMCSR = code;                //寄存器SPMCSR中為操作碼 
    FC86 800C      LDD	R0,Y+4
    FC87 92000068  STS	0x68,R0
(0044)     asm("spm\n");                    //對指定Flash頁進行操作 
    FC89 95E8      SPM
(0045) }         
    FC8A 9624      ADIW	R28,4
    FC8B 9508      RET
(0046) //填充Flash緩沖頁中的一個字 
(0047) void boot_page_fill(unsigned int address,int data) 
(0048) { 
(0049)     asm("mov r30,r16\n" 
_boot_page_fill:
  data                 --> R18
  address              --> R16
    FC8C 2FE0      MOV	R30,R16
    FC8D 2FF1      MOV	R31,R17
    FC8E 2E02      MOV	R0,R18
    FC8F 2E13      MOV	R1,R19
(0050)         "mov r31,r17\n"             //Z/寄存器中為填沖頁內地址 
(0051)         "mov r0,r18\n" 
(0052)         "mov r1,r19\n");            //R0R1/中為一個指令字 
(0053)     SPMCSR = 0x01; 
    FC90 E081      LDI	R24,1
    FC91 93800068  STS	0x68,R24
(0054)     asm("spm\n"); 
    FC93 95E8      SPM
(0055) } 
    FC94 9508      RET
(0056) //等待一個Flash頁的寫完成 
(0057) void wait_page_rw_ok(void) 
(0058) { 
_wait_page_rw_ok:
    FC95 C008      RJMP	0xFC9E
(0059)       while(SPMCSR & 0x40) 
(0060)      { 
(0061)          while(SPMCSR & 0x01); 
    FC96 90200068  LDS	R2,0x68
    FC98 FC20      SBRC	R2,0
    FC99 CFFC      RJMP	0xFC96
(0062)          SPMCSR = 0x11; 
    FC9A E181      LDI	R24,0x11
    FC9B 93800068  STS	0x68,R24
(0063)          asm("spm\n"); 
    FC9D 95E8      SPM
    FC9E 90200068  LDS	R2,0x68
    FCA0 FC26      SBRC	R2,6
    FCA1 CFF4      RJMP	0xFC96
(0064)      } 
(0065) } 
    FCA2 9508      RET
_write_one_page:
  i                    --> R20
    FCA3 940EFE09  CALL	push_gset1
    FCA5 9721      SBIW	R28,1
(0066) //更新一個Flash頁的完整處理 
(0067) void write_one_page(void) 
(0068) { 
(0069)     int i; 
(0070)     boot_page_ew(address,0x03);                    //擦除一個Flash頁 
    FCA6 E083      LDI	R24,3
    FCA7 8388      STD	Y+0,R24
    FCA8 91200102  LDS	R18,0x102
    FCAA 91300103  LDS	R19,0x103
    FCAC 91000100  LDS	R16,0x100
    FCAE 91100101  LDS	R17,0x101
    FCB0 DFD0      RCALL	_boot_page_ew
(0071)     wait_page_rw_ok();                            //等待擦除完成 
    FCB1 DFE3      RCALL	_wait_page_rw_ok
(0072)     for(i=0;i<SPM_PAGESIZE;i+=2)                //將數據填入Flash緩沖頁中 
    FCB2 2744      CLR	R20
    FCB3 2755      CLR	R21
(0073)     { 
(0074)         boot_page_fill(i, data[i]+(data[i+1]<<8)); 
    FCB4 E085      LDI	R24,5
    FCB5 E091      LDI	R25,1
    FCB6 01FA      MOVW	R30,R20
    FCB7 0FE8      ADD	R30,R24
    FCB8 1FF9      ADC	R31,R25
    FCB9 8020      LDD	R2,Z+0
    FCBA 2433      CLR	R3
    FCBB 2C32      MOV	R3,R2
    FCBC 2422      CLR	R2
    FCBD E084      LDI	R24,4
    FCBE E091      LDI	R25,1
    FCBF 01FA      MOVW	R30,R20
    FCC0 0FE8      ADD	R30,R24
    FCC1 1FF9      ADC	R31,R25
    FCC2 8120      LDD	R18,Z+0
    FCC3 2733      CLR	R19
    FCC4 0D22      ADD	R18,R2
    FCC5 1D33      ADC	R19,R3
    FCC6 018A      MOVW	R16,R20
    FCC7 DFC4      RCALL	_boot_page_fill
    FCC8 5F4E      SUBI	R20,0xFE
    FCC9 4F5F      SBCI	R21,0xFF
    FCCA 3040      CPI	R20,0
    FCCB E0E1      LDI	R30,1
    FCCC 075E      CPC	R21,R30
    FCCD F334      BLT	0xFCB4
(0075)     } 
(0076)     boot_page_ew(address,0x05);                    //將緩沖頁數據寫入一個Flash頁 
    FCCE E085      LDI	R24,5
    FCCF 8388      STD	Y+0,R24
    FCD0 91200102  LDS	R18,0x102
    FCD2 91300103  LDS	R19,0x103
    FCD4 91000100  LDS	R16,0x100
    FCD6 91100101  LDS	R17,0x101
    FCD8 DFA8      RCALL	_boot_page_ew
(0077)     wait_page_rw_ok();                            //等待寫入完成 
    FCD9 DFBB      RCALL	_wait_page_rw_ok
(0078) }         
    FCDA 9621      ADIW	R28,1
    FCDB 940EFE0C  CALL	pop_gset1
    FCDD 9508      RET
(0079) //從RS232發送一個字節 
(0080) void uart_putchar(char c) 
(0081) { 
(0082)     while(!(UCSR0A & 0x20)); 
_uart_putchar:
  c                    --> R16
    FCDE 9B5D      SBIS	0x0B,5
    FCDF CFFE      RJMP	_uart_putchar
(0083)     UDR0 = c; 
    FCE0 B90C      OUT	0x0C,R16
(0084) } 
    FCE1 9508      RET
(0085) //從RS232接收一個字節 
(0086) int uart_getchar(void) 
(0087) { 
(0088)     unsigned char status,res; 
(0089)     if(!(UCSR0A & 0x80)) return -1;        //no/ data to be received 
_uart_getchar:
  res                  --> R16
  status               --> R18
    FCE2 995F      SBIC	0x0B,7
    FCE3 C003      RJMP	0xFCE7
    FCE4 EF0F      LDI	R16,0xFF
    FCE5 EF1F      LDI	R17,0xFF
    FCE6 C009      RJMP	0xFCF0
(0090)     status = UCSR0A; 
    FCE7 B12B      IN	R18,0x0B
(0091)     res = UDR0; 
    FCE8 B10C      IN	R16,0x0C
(0092)     if (status & 0x1c) return -1;        // If error, return -1 
    FCE9 2F82      MOV	R24,R18
    FCEA 718C      ANDI	R24,0x1C
    FCEB F019      BEQ	0xFCEF
    FCEC EF0F      LDI	R16,0xFF
    FCED EF1F      LDI	R17,0xFF
    FCEE C001      RJMP	0xFCF0
(0093)     return res; 
    FCEF 2711      CLR	R17
    FCF0 9508      RET
_uart_waitchar:
  c                    --> R20
    FCF1 940EFE09  CALL	push_gset1
(0094) } 
(0095) //等待從RS232接收一個有效的字節 
(0096) char uart_waitchar(void) 
(0097) { 
(0098)     int c; 
(0099)     while((c=uart_getchar())==-1); 
    FCF3 DFEE      RCALL	_uart_getchar
    FCF4 01A8      MOVW	R20,R16
    FCF5 3F4F      CPI	R20,0xFF
    FCF6 EFEF      LDI	R30,0xFF
    FCF7 075E      CPC	R21,R30
    FCF8 F3D1      BEQ	0xFCF3
(0100)     return (char)c; 
    FCF9 940EFE0C  CALL	pop_gset1
    FCFB 9508      RET
_calcrc:
  i                    --> R22
  crc                  --> R20
  count                --> R18
  ptr                  --> R16
    FCFC 940EFE20  CALL	push_gset2
(0101) } 
(0102) //計算CRC 
(0103) int calcrc(char *ptr, int count) 
(0104) { 
(0105)     int crc = 0; 
    FCFE 2744      CLR	R20
    FCFF 2755      CLR	R21
    FD00 C01B      RJMP	0xFD1C
(0106)     char i; 
(0107)      
(0108)     while (--count >= 0) 
(0109)     { 
(0110)         crc = crc ^ (int) *ptr++ << 8; 
    FD01 01F8      MOVW	R30,R16
    FD02 9021      LD	R2,Z+
    FD03 018F      MOVW	R16,R30
    FD04 2433      CLR	R3
    FD05 2C32      MOV	R3,R2
    FD06 2422      CLR	R2
    FD07 2542      EOR	R20,R2
    FD08 2553      EOR	R21,R3
(0111)         i = 8; 
    FD09 E068      LDI	R22,0x8
(0112)         do 
(0113)         { 
(0114)         if (crc & 0x8000) 
    FD0A FF57      SBRS	R21,7
    FD0B C009      RJMP	0xFD15
(0115)             crc = crc << 1 ^ 0x1021; 
    FD0C E281      LDI	R24,0x21
    FD0D E190      LDI	R25,0x10
    FD0E 011A      MOVW	R2,R20
    FD0F 0C22      LSL	R2
    FD10 1C33      ROL	R3
    FD11 2628      EOR	R2,R24
    FD12 2639      EOR	R3,R25
    FD13 01A1      MOVW	R20,R2
    FD14 C002      RJMP	0xFD17
(0116)         else 
(0117)             crc = crc << 1; 
    FD15 0F44      LSL	R20
    FD16 1F55      ROL	R21
(0118)         } while(--i); 
    FD17 2F86      MOV	R24,R22
    FD18 5081      SUBI	R24,1
    FD19 2F68      MOV	R22,R24
    FD1A 2388      TST	R24
    FD1B F771      BNE	0xFD0A
    FD1C 01C9      MOVW	R24,R18
    FD1D 9701      SBIW	R24,1
    FD1E 019C      MOVW	R18,R24
    FD1F 3020      CPI	R18,0
    FD20 E0E0      LDI	R30,0
    FD21 073E      CPC	R19,R30
    FD22 F6F4      BGE	0xFD01
(0119)     } 
(0120)     return (crc); 
    FD23 018A      MOVW	R16,R20
    FD24 940EFE07  CALL	pop_gset2
    FD26 9508      RET
(0121) } 
(0122) //退出Bootloader程序,從0x0000處執行應用程序 
(0123) void quit(void) 
(0124) { 
(0125)       uart_putchar('O');uart_putchar('K'); 
_quit:
    FD27 E40F      LDI	R16,0x4F
    FD28 DFB5      RCALL	_uart_putchar
    FD29 E40B      LDI	R16,0x4B
    FD2A DFB3      RCALL	_uart_putchar
(0126) uart_putchar(0x0d);uart_putchar(0x0a); 
    FD2B E00D      LDI	R16,0xD

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美吞精做爰啪啪高潮| 91在线无精精品入口| 日韩欧美视频一区| 经典三级在线一区| 欧美国产禁国产网站cc| 99久久er热在这里只有精品66| 日韩理论片网站| 91福利社在线观看| 五月激情六月综合| 久久先锋资源网| 99re亚洲国产精品| 亚洲va国产天堂va久久en| 91精品午夜视频| 国产成人精品亚洲777人妖| 最新中文字幕一区二区三区| 欧美日韩一区三区四区| 韩国欧美国产一区| 亚洲激情第一区| 日韩欧美亚洲国产另类| 成人精品免费视频| 天天色图综合网| 国产日韩在线不卡| 欧美视频日韩视频在线观看| 国产在线播精品第三| 一区二区三区国产豹纹内裤在线| 日韩一区二区三区精品视频| 国产成人日日夜夜| 午夜精彩视频在线观看不卡| 国产欧美综合在线观看第十页 | 国产精品久久久久影院老司| 91九色最新地址| 精品在线视频一区| 亚洲精品日韩综合观看成人91| 日韩欧美在线影院| 一本大道av伊人久久综合| 美女网站视频久久| 一区二区三区精品在线| 精品国产污污免费网站入口 | 天天操天天色综合| 中文字幕av一区 二区| 91精品国产综合久久久蜜臀图片 | 9191久久久久久久久久久| 国产精品123| 日韩精品国产精品| 亚洲美女一区二区三区| 久久久久久黄色| 欧美一级日韩一级| 欧美色大人视频| 99精品国产视频| 国产99久久久精品| 久久99久久99| 日本成人在线不卡视频| 一区二区三区久久| 亚洲男人的天堂一区二区| 国产精品热久久久久夜色精品三区| 欧美精品久久一区二区三区| 99久久精品国产精品久久| 国产成人综合亚洲91猫咪| 美腿丝袜一区二区三区| 五月婷婷久久综合| 亚洲一区二区在线视频| 成人欧美一区二区三区1314| 国产欧美日韩另类视频免费观看| 欧美电视剧免费观看| 欧美精品第1页| 欧美日韩国产天堂| 在线观看视频一区二区| 91亚洲精品一区二区乱码| 成人一区二区在线观看| 成人看片黄a免费看在线| 高清av一区二区| 成人精品免费看| 波多野结衣一区二区三区| 国产成人免费在线观看不卡| 国产剧情一区二区三区| 国产精品2024| 成人av午夜电影| 91蜜桃视频在线| 欧美一a一片一级一片| 欧美在线影院一区二区| 欧美另类变人与禽xxxxx| 在线播放欧美女士性生活| 这里是久久伊人| 欧美精品一区二区蜜臀亚洲| 精品国产欧美一区二区| 国产清纯白嫩初高生在线观看91| 国产精品三级视频| 亚洲主播在线观看| 日本不卡一区二区三区高清视频| 国产成人福利片| 91在线观看高清| 欧美男生操女生| 精品久久久久久亚洲综合网| 欧美国产日韩亚洲一区| 亚洲免费看黄网站| 五月激情丁香一区二区三区| 久久99精品国产麻豆婷婷洗澡| 国产精品99久久久久久久女警| 丁香六月久久综合狠狠色| 色综合一区二区| 91精品黄色片免费大全| 国产亚洲欧洲997久久综合| 亚洲人成精品久久久久久| 石原莉奈在线亚洲三区| 国产精品羞羞答答xxdd| 日本高清视频一区二区| 欧美一级午夜免费电影| 中文字幕在线一区二区三区| 亚洲高清视频的网址| 国产综合色产在线精品| 色婷婷亚洲精品| 日韩欧美精品三级| **性色生活片久久毛片| 免费欧美日韩国产三级电影| 北条麻妃国产九九精品视频| 欧美一区二区三区视频在线| 国产精品网站导航| 蜜桃av噜噜一区二区三区小说| 成人黄色软件下载| 日韩西西人体444www| 亚洲色图在线看| 国产一区二区三区在线观看免费 | 中文字幕第一区综合| 亚洲综合一二区| 国产成都精品91一区二区三| 欧美日韩久久久久久| 国产精品三级在线观看| 成人一区二区三区中文字幕| 欧美精品少妇一区二区三区| 成人免费在线观看入口| 黄色日韩网站视频| 欧美精品在线一区二区三区| 国产精品免费人成网站| 麻豆精品在线播放| 欧美久久高跟鞋激| 夜夜操天天操亚洲| 懂色av中文字幕一区二区三区 | 精品久久久久久久久久久久久久久| 日韩毛片精品高清免费| 国产精品一区二区黑丝| 欧美一区二区三区的| 一区二区三区日韩精品视频| 成人性视频网站| 精品国产91久久久久久久妲己 | 最新欧美精品一区二区三区| 蜜臀av性久久久久蜜臀aⅴ流畅| 欧美最猛黑人xxxxx猛交| 成人免费一区二区三区在线观看| 精品一区二区三区在线观看| 7777精品伊人久久久大香线蕉| 亚洲精品国产高清久久伦理二区| 成人在线一区二区三区| 久久久精品欧美丰满| 极品美女销魂一区二区三区| 日韩午夜激情视频| 男女视频一区二区| 欧美日韩精品欧美日韩精品一 | 免费成人性网站| 欧美日韩国产精选| 亚洲成a人片在线不卡一二三区| 色视频一区二区| 一区二区三区在线观看国产| 99精品视频在线观看| 综合色天天鬼久久鬼色| 91小视频免费看| 一区二区三区欧美日| 欧美四级电影在线观看| 一区二区三区欧美| 欧美日韩国产大片| 青青草一区二区三区| 欧美videos中文字幕| 国产在线精品一区在线观看麻豆| 欧美电视剧免费观看| 国产精品亚洲人在线观看| 国产精品女上位| 日本高清不卡一区| 天堂成人国产精品一区| 在线成人免费观看| 国内精品伊人久久久久av影院 | 不卡在线观看av| 亚洲免费在线视频一区 二区| 91电影在线观看| 午夜电影一区二区| 精品嫩草影院久久| 国产大陆精品国产| 亚洲男人天堂一区| 51精品视频一区二区三区| 国产一区在线精品| 国产精品高潮久久久久无| 色视频成人在线观看免| 日韩精品一二三| 久久精子c满五个校花| 色综合色狠狠综合色| 日韩福利电影在线| 国产婷婷色一区二区三区四区| 91一区二区在线观看| 日韩国产在线观看一区| 国产欧美视频一区二区| 欧美日韩在线播放三区四区| 韩国三级电影一区二区|