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

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

?? atemga128iap.s

?? atmega128在線升級程序
?? S
?? 第 1 頁 / 共 2 頁
字號:
	.module ATEMGA128IAP.C
	.area lit(rom, con, rel)
_startupString::
	.byte 'T,'y,'p,'e,32,39,'d,39,32,'d,'o,'w,'n,'l,'o,'a
	.byte 'd,44,32,'O,'t,'h,'e,'r,'s,32,'r,'u,'n,32,'a,'p
	.byte 'p,46,10,13,0,0
	.dbfile E:\宇能工作盤\YN3010\IAP\ATEMGA128IAP.C
	.dbsym e startupString _startupString A[38:38]kc
	.area data(ram, con, rel)
	.dbfile E:\宇能工作盤\YN3010\IAP\ATEMGA128IAP.C
_address::
	.blkb 4
	.area idata
	.word 0,0
	.area data(ram, con, rel)
	.dbfile E:\宇能工作盤\YN3010\IAP\ATEMGA128IAP.C
	.dbsym e address _address L
	.area text(rom, con, rel)
	.dbfile E:\宇能工作盤\YN3010\IAP\ATEMGA128IAP.C
	.dbfunc e boot_page_ew _boot_page_ew fV
;           code -> y+4
;      p_address -> y+0
	.even
_boot_page_ew::
	xcall push_arg4
	.dbline -1
	.dbline 39
; /***************************************************** 
; 采用串行接口實現Boot_load應用的實例 
; 華東師大電子系 馬 潮 2004.07 
; Compiler:    ICC-AVR 6.31 
; Target:    Mega128 
; Crystal:    16Mhz 
; Used:        T/C0,USART0 
; *****************************************************/ 
; #include <iom128v.h> 
; #define SPM_PAGESIZE 256              
; //M128/的一個Flash頁為256字節(128字) 
; #define BAUD 38400                
; //波特率采用38400bps 
; #define CRYSTAL 16000000            
; //系統時鐘16MHz 
; //計算和定義M128的波特率設置參數 
; #define BAUD_SETTING (unsigned char)((unsigned long)CRYSTAL/(16*(unsigned long)BAUD)-1) 
; #define BAUD_H (unsigned char)(BAUD_SETTING>>8) 
; #define BAUD_L (unsigned char)BAUD_SETTING 
; 
; #define DATA_BUFFER_SIZE SPM_PAGESIZE        
; //定義接收緩沖區長度 
; //定義Xmoden控制字符 
; #define XMODEM_NUL 0x00 
; #define XMODEM_SOH 0x01 
; #define XMODEM_STX 0x02 
; #define XMODEM_EOT 0x04 
; #define XMODEM_ACK 0x06 
; #define XMODEM_NAK 0x15 
; #define XMODEM_CAN 0x18 
; #define XMODEM_EOF 0x1A 
; #define XMODEM_RECIEVING_WAIT_CHAR 'C' 
; //定義全局變量 
; const char startupString[]="Type 'd' download, Others run app.\n\r\0"; 
; char data[DATA_BUFFER_SIZE]; 
; long address = 0; 
; //擦除(code=0x03)和寫入(code=0x05)一個Flash頁 
; void boot_page_ew(long p_address,char code) 
; { 
	.dbline 40
;     asm("mov r30,r16\n" 
	mov r30,r16
	mov r31,r17
	out 0x3b,r18
	
	.dbline 43
;         "mov r31,r17\n" 
;         "out 0x3b,r18\n");            //將頁地址放入Z寄存器和RAMPZ的Bit0中 
;     SPMCSR = code;                //寄存器SPMCSR中為操作碼 
	ldd R0,y+4
	sts 104,R0
	.dbline 44
;     asm("spm\n");                    //對指定Flash頁進行操作 
	spm
	
	.dbline -2
	.dbline 45
; }         
L1:
	adiw R28,4
	.dbline 0 ; func end
	ret
	.dbsym l code 4 c
	.dbsym l p_address 0 L
	.dbend
	.dbfunc e boot_page_fill _boot_page_fill fV
;           data -> R18,R19
;        address -> R16,R17
	.even
_boot_page_fill::
	.dbline -1
	.dbline 48
; //填充Flash緩沖頁中的一個字 
; void boot_page_fill(unsigned int address,int data) 
; { 
	.dbline 49
;     asm("mov r30,r16\n" 
	mov r30,r16
	mov r31,r17
	mov r0,r18
	mov r1,r19
	
	.dbline 53
;         "mov r31,r17\n"             //Z/寄存器中為填沖頁內地址 
;         "mov r0,r18\n" 
;         "mov r1,r19\n");            //R0R1/中為一個指令字 
;     SPMCSR = 0x01; 
	ldi R24,1
	sts 104,R24
	.dbline 54
;     asm("spm\n"); 
	spm
	
	.dbline -2
	.dbline 55
; } 
L2:
	.dbline 0 ; func end
	ret
	.dbsym r data 18 I
	.dbsym r address 16 i
	.dbend
	.dbfunc e wait_page_rw_ok _wait_page_rw_ok fV
	.even
_wait_page_rw_ok::
	.dbline -1
	.dbline 58
; //等待一個Flash頁的寫完成 
; void wait_page_rw_ok(void) 
; { 
	xjmp L5
X0:
	.dbline 60
;       while(SPMCSR & 0x40) 
;      { 
L7:
	.dbline 61
L8:
	.dbline 61
	lds R2,104
	sbrc R2,0
	rjmp L7
	.dbline 62
	ldi R24,17
	sts 104,R24
	.dbline 63
	spm
	
	.dbline 64
L5:
	.dbline 59
	lds R2,104
	sbrc R2,6
	rjmp L8
	.dbline -2
	.dbline 65
;          while(SPMCSR & 0x01); 
;          SPMCSR = 0x11; 
;          asm("spm\n"); 
;      } 
; } 
L3:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e write_one_page _write_one_page fV
;              i -> R20,R21
	.even
_write_one_page::
	xcall push_gset1
	sbiw R28,1
	.dbline -1
	.dbline 68
; //更新一個Flash頁的完整處理 
; void write_one_page(void) 
; { 
	.dbline 70
;     int i; 
;     boot_page_ew(address,0x03);                    //擦除一個Flash頁 
	ldi R24,3
	std y+0,R24
	lds R18,_address+2
	lds R19,_address+2+1
	lds R16,_address
	lds R17,_address+1
	xcall _boot_page_ew
	.dbline 71
;     wait_page_rw_ok();                            //等待擦除完成 
	xcall _wait_page_rw_ok
	.dbline 72
;     for(i=0;i<SPM_PAGESIZE;i+=2)                //將數據填入Flash緩沖頁中 
	clr R20
	clr R21
L11:
	.dbline 73
	.dbline 74
	ldi R24,<_data+1
	ldi R25,>_data+1
	movw R30,R20
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	clr R3
	mov R3,R2
	clr R2
	ldi R24,<_data
	ldi R25,>_data
	movw R30,R20
	add R30,R24
	adc R31,R25
	ldd R18,z+0
	clr R19
	add R18,R2
	adc R19,R3
	movw R16,R20
	xcall _boot_page_fill
	.dbline 75
L12:
	.dbline 72
	subi R20,254  ; offset = 2
	sbci R21,255
	.dbline 72
	cpi R20,0
	ldi R30,1
	cpc R21,R30
	brlt L11
	.dbline 76
;     { 
;         boot_page_fill(i, data[i]+(data[i+1]<<8)); 
;     } 
;     boot_page_ew(address,0x05);                    //將緩沖頁數據寫入一個Flash頁 
	ldi R24,5
	std y+0,R24
	lds R18,_address+2
	lds R19,_address+2+1
	lds R16,_address
	lds R17,_address+1
	xcall _boot_page_ew
	.dbline 77
;     wait_page_rw_ok();                            //等待寫入完成 
	xcall _wait_page_rw_ok
	.dbline -2
	.dbline 78
; }         
L10:
	adiw R28,1
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 I
	.dbend
	.dbfunc e uart_putchar _uart_putchar fV
;              c -> R16
	.even
_uart_putchar::
	.dbline -1
	.dbline 81
; //從RS232發送一個字節 
; void uart_putchar(char c) 
; { 
L17:
	.dbline 82
L18:
	.dbline 82
;     while(!(UCSR0A & 0x20)); 
	sbis 0xb,5
	rjmp L17
	.dbline 83
;     UDR0 = c; 
	out 0xc,R16
	.dbline -2
	.dbline 84
; } 
L16:
	.dbline 0 ; func end
	ret
	.dbsym r c 16 c
	.dbend
	.dbfunc e uart_getchar _uart_getchar fI
;            res -> R16
;         status -> R18
	.even
_uart_getchar::
	.dbline -1
	.dbline 87
; //從RS232接收一個字節 
; int uart_getchar(void) 
; { 
	.dbline 89
;     unsigned char status,res; 
;     if(!(UCSR0A & 0x80)) return -1;        //no/ data to be received 
	sbic 0xb,7
	rjmp L21
	.dbline 89
	ldi R16,-1
	ldi R17,-1
	xjmp L20
L21:
	.dbline 90
;     status = UCSR0A; 
	in R18,0xb
	.dbline 91
;     res = UDR0; 
	in R16,0xc
	.dbline 92
;     if (status & 0x1c) return -1;        // If error, return -1 
	mov R24,R18
	andi R24,28
	breq L23
	.dbline 92
	ldi R16,-1
	ldi R17,-1
	xjmp L20
L23:
	.dbline 93
;     return res; 
	clr R17
	.dbline -2
L20:
	.dbline 0 ; func end
	ret
	.dbsym r res 16 c
	.dbsym r status 18 c
	.dbend
	.dbfunc e uart_waitchar _uart_waitchar fc
;              c -> R20,R21
	.even
_uart_waitchar::
	xcall push_gset1
	.dbline -1
	.dbline 97
; } 
; //等待從RS232接收一個有效的字節 
; char uart_waitchar(void) 
; { 
L26:
	.dbline 99
L27:
	.dbline 99
;     int c; 
;     while((c=uart_getchar())==-1); 
	xcall _uart_getchar
	movw R20,R16
	cpi R20,255
	ldi R30,255
	cpc R21,R30
	breq L26
	.dbline 100
;     return (char)c; 
	.dbline -2
L25:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r c 20 I
	.dbend
	.dbfunc e calcrc _calcrc fI
;              i -> R22
;            crc -> R20,R21
;          count -> R18,R19
;            ptr -> R16,R17
	.even
_calcrc::
	xcall push_gset2
	.dbline -1
	.dbline 104
; } 
; //計算CRC 
; int calcrc(char *ptr, int count) 
; { 
	.dbline 105
;     int crc = 0; 
	clr R20
	clr R21
	xjmp L31
L30:
	.dbline 109
;     char i; 
;      
;     while (--count >= 0) 
;     { 
	.dbline 110
;         crc = crc ^ (int) *ptr++ << 8; 
	movw R30,R16
	ld R2,Z+
	movw R16,R30
	clr R3
	mov R3,R2
	clr R2
	eor R20,R2
	eor R21,R3
	.dbline 111
;         i = 8; 
	ldi R22,8
L33:
	.dbline 113
;         do 
;         { 
	.dbline 114
;         if (crc & 0x8000) 
	sbrs R21,7
	rjmp L36
	.dbline 115
;             crc = crc << 1 ^ 0x1021; 
	ldi R24,4129
	ldi R25,16
	movw R2,R20
	lsl R2
	rol R3
	eor R2,R24
	eor R3,R25
	movw R20,R2
	xjmp L37
L36:
	.dbline 117
;         else 
;             crc = crc << 1; 
	lsl R20
	rol R21
L37:
	.dbline 118
L34:
	.dbline 118
	mov R24,R22
	subi R24,1
	mov R22,R24
	tst R24
	brne L33
	.dbline 119
L31:
	.dbline 108
	movw R24,R18
	sbiw R24,1
	movw R18,R24
	cpi R18,0
	ldi R30,0
	cpc R19,R30
	brge L30
	.dbline 120
;         } while(--i); 
;     } 
;     return (crc); 
	movw R16,R20
	.dbline -2
L29:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r i 22 c

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆一区二区99久久久久| 亚洲一区二区av在线| 91精品国产综合久久久久久漫画| av电影天堂一区二区在线观看| 国产1区2区3区精品美女| 蜜桃精品在线观看| 免费观看成人鲁鲁鲁鲁鲁视频| 免费观看在线综合| 狠狠色丁香久久婷婷综合丁香| 国产毛片一区二区| 成人99免费视频| 在线精品视频免费播放| 欧美色大人视频| 91精品蜜臀在线一区尤物| 日韩美女视频在线| 久久久一区二区三区捆绑**| 日韩精品一区二区三区视频播放 | 99热99精品| 成人黄色在线视频| 成人白浆超碰人人人人| 在线观看视频91| 欧美一区二区免费观在线| 精品国产一区a| 中文成人av在线| 一区二区三区中文字幕在线观看| 亚洲狠狠爱一区二区三区| 美女爽到高潮91| fc2成人免费人成在线观看播放 | 在线观看一区二区视频| 欧美日韩成人高清| 在线亚洲高清视频| 欧美日韩不卡一区二区| 欧美r级在线观看| 中文字幕高清一区| 亚洲综合男人的天堂| 久久精品国产99国产| 成人精品在线视频观看| 99久久99久久免费精品蜜臀| 欧美视频中文一区二区三区在线观看| 9191成人精品久久| 中文字幕色av一区二区三区| 亚洲一区二区四区蜜桃| 国产精品一区二区久激情瑜伽| 91丝袜美女网| 久久先锋影音av鲁色资源网| 亚洲制服丝袜在线| 成熟亚洲日本毛茸茸凸凹| 欧美日韩免费一区二区三区| 国产午夜精品美女毛片视频| 亚洲大尺度视频在线观看| 丁香桃色午夜亚洲一区二区三区| 91麻豆国产福利在线观看| 日韩精品一区二区三区三区免费| 亚洲女女做受ⅹxx高潮| 精品一区二区三区在线播放视频| 91丨porny丨在线| 久久久久久久久久看片| 麻豆久久久久久| 欧美手机在线视频| 亚洲欧洲国产日本综合| 国产成人精品影视| 欧美videossexotv100| 日韩 欧美一区二区三区| 日本韩国欧美一区| 成人欧美一区二区三区1314| 九九九精品视频| 欧美肥妇毛茸茸| 亚洲成人综合在线| 欧美性猛交xxxx黑人交| 一区二区三区日韩精品视频| 99国产精品一区| 中文字幕日本不卡| www.亚洲色图.com| 国产精品另类一区| av不卡免费在线观看| 欧美国产精品久久| 不卡在线视频中文字幕| 成人免费在线播放视频| 99久久精品国产一区| 日本一区二区成人| 中文字幕免费在线观看视频一区| 国产成人综合亚洲91猫咪| 6080yy午夜一二三区久久| 夜夜精品浪潮av一区二区三区| 成人小视频在线| 国产精品水嫩水嫩| 99国产欧美久久久精品| 最好看的中文字幕久久| 色视频成人在线观看免| 亚洲影院理伦片| 91精品国产色综合久久| 国产在线精品一区二区夜色| 国产欧美精品一区二区三区四区| 国产成人在线视频网站| 国产精品美女久久久久aⅴ | 日韩激情视频网站| 在线免费观看日本欧美| 亚洲超碰精品一区二区| 欧美一区二区三区色| 韩国理伦片一区二区三区在线播放 | 国产一二精品视频| 国产三级一区二区三区| 一本大道久久a久久精品综合| 亚洲成人动漫一区| 久久久久久99精品| 99久久99久久综合| 日韩精品1区2区3区| 国产午夜精品一区二区三区视频 | 制服丝袜亚洲色图| 精品一区二区三区免费毛片爱| 久久久久久久久久看片| 色偷偷成人一区二区三区91| 日日欢夜夜爽一区| 日本一区二区在线不卡| 欧美日韩国产系列| 国产成人免费网站| 亚洲chinese男男1069| 国产欧美一区二区精品仙草咪| 欧洲生活片亚洲生活在线观看| 麻豆国产一区二区| 亚洲精品美国一| 国产网站一区二区| 欧美精品自拍偷拍动漫精品| 懂色av一区二区三区免费观看| 日韩精品久久久久久| 国产精品色在线| 欧美成人vr18sexvr| 欧美在线免费播放| 国产精品白丝av| 日本怡春院一区二区| 亚洲人亚洲人成电影网站色| 337p日本欧洲亚洲大胆精品| 欧美偷拍一区二区| 91最新地址在线播放| 国产乱码精品一区二区三区av | 欧美影视一区在线| av一二三不卡影片| 国产二区国产一区在线观看| 视频一区中文字幕国产| 一级特黄大欧美久久久| 中文字幕亚洲精品在线观看| 久久久久综合网| 日韩一区二区三区四区五区六区| 91成人网在线| 99精品视频一区二区| 成人av在线影院| 国产成人精品午夜视频免费| 麻豆精品在线播放| 爽爽淫人综合网网站| 亚洲愉拍自拍另类高清精品| 亚洲国产激情av| 国产日韩在线不卡| 欧美国产欧美综合| 国产精品久久久久久久久图文区| 欧美精品一区二区三区一线天视频| 7799精品视频| 日韩欧美一级二级| 精品国产成人系列| 亚洲国产精品成人综合| 国产日韩欧美综合在线| 日本一区二区成人| 国产精品国产三级国产aⅴ入口| 亚洲国产成人一区二区三区| 中文字幕av资源一区| 国产精品久久久久久久久免费樱桃 | 美腿丝袜在线亚洲一区| 精品一区二区免费| 国产在线精品一区二区三区不卡| 国产精品夜夜爽| 99久久久精品免费观看国产蜜| 99国产精品久| 在线看日本不卡| 亚洲午夜一二三区视频| 国产精品网曝门| 一区二区三区四区在线播放| 亚洲免费观看高清完整版在线 | 国产成人精品免费视频网站| 粗大黑人巨茎大战欧美成人| 成人午夜免费视频| 欧美视频在线一区二区三区| 日韩精品一区二区三区视频播放 | 亚洲国产裸拍裸体视频在线观看乱了| 性做久久久久久免费观看欧美| 男男成人高潮片免费网站| 99久久精品免费看国产| 欧美午夜精品久久久| 欧美变态tickling挠脚心| 亚洲欧美日韩国产一区二区三区 | 国产精品亚洲成人| 看电视剧不卡顿的网站| 3d动漫精品啪啪一区二区竹菊| 天天影视涩香欲综合网| 亚洲成人av免费| 青娱乐精品视频| 成人开心网精品视频| 日本久久电影网| 欧美日韩国产综合久久 | 蜜桃一区二区三区在线观看| 蜜臀av一级做a爰片久久| 极品少妇xxxx精品少妇|