亚洲欧美第一页_禁久久精品乱码_粉嫩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久| 555www色欧美视频| 一区二区三区四区蜜桃| 国产一区 二区| 91精品综合久久久久久| 亚洲另类在线一区| 成人深夜福利app| 精品国产青草久久久久福利| 亚洲成人先锋电影| 91蜜桃网址入口| 中文字幕欧美日韩一区| 国模一区二区三区白浆| 欧美高清视频www夜色资源网| 国产精品福利影院| 国产**成人网毛片九色| 久久综合九色综合97_久久久| 亚洲h在线观看| 色域天天综合网| ㊣最新国产の精品bt伙计久久| 国产一区二区三区精品欧美日韩一区二区三区 | 日韩成人av影视| 欧美美女bb生活片| 亚洲一级片在线观看| 91视频在线观看| 成人欧美一区二区三区黑人麻豆 | 久久蜜桃av一区二区天堂| 蜜臀av性久久久久蜜臀aⅴ| 欧美精品在线观看播放| 婷婷综合另类小说色区| 欧美高清视频一二三区 | 欧美三级中文字幕在线观看| 亚洲人成在线观看一区二区| 91免费视频网址| 亚洲精品成人天堂一二三| 色呦呦国产精品| 香港成人在线视频| 91精品国产品国语在线不卡| 日韩电影在线观看电影| 日韩欧美一二三四区| 精彩视频一区二区三区| 国产无人区一区二区三区| eeuss影院一区二区三区| 亚洲日本在线看| 欧美亚洲国产一区在线观看网站 | 国产成人欧美日韩在线电影| 中文字幕精品三区| 欧亚一区二区三区| 婷婷成人综合网| 精品国产一区久久| 99在线视频精品| 香蕉久久一区二区不卡无毒影院 | 成人午夜电影久久影院| 亚洲精品日韩综合观看成人91| 欧美在线影院一区二区| 日本不卡视频一二三区| 国产日韩综合av| 日本福利一区二区| 久久精品国产精品亚洲综合| 日本一二三不卡| 欧美日韩二区三区| 成人黄色电影在线 | 99久久久久久| 日韩精品色哟哟| 国产亚洲欧洲一区高清在线观看| 色综合咪咪久久| 精品制服美女丁香| 亚洲综合激情网| 日韩一区二区免费视频| av一区二区三区黑人| 日本va欧美va瓶| 亚洲天堂免费看| 精品1区2区在线观看| 在线观看一区二区视频| 国内精品国产三级国产a久久| 玉米视频成人免费看| 久久精品男人的天堂| 7777精品伊人久久久大香线蕉 | 成人av电影免费观看| 麻豆国产一区二区| 有码一区二区三区| 久久精品一二三| 欧美一区二区福利在线| 一本一本大道香蕉久在线精品 | 99视频一区二区| 狠狠色丁香婷婷综合| 亚洲图片有声小说| 亚洲视频免费在线观看| 中文字幕欧美三区| 久久这里都是精品| 日韩欧美在线一区二区三区| 色就色 综合激情| 成人综合日日夜夜| 国产综合色视频| 麻豆专区一区二区三区四区五区| 夜夜爽夜夜爽精品视频| 亚洲少妇30p| 17c精品麻豆一区二区免费| 国产色一区二区| 久久色成人在线| 日韩精品一区国产麻豆| 7777精品伊人久久久大香线蕉 | 国产美女av一区二区三区| 午夜伦欧美伦电影理论片| 亚洲与欧洲av电影| 夜夜精品浪潮av一区二区三区| 国产欧美一区二区在线| 欧美激情自拍偷拍| 国产精品欧美一级免费| 亚洲国产精品成人综合| 亚洲国产成人自拍| 国产精品久久久久久久裸模| 国产精品人人做人人爽人人添| 精品国产乱码久久久久久久| 欧美成人免费网站| 精品国产电影一区二区| 精品乱人伦小说| 国产欧美日韩激情| 国产精品三级视频| 国产精品国产三级国产普通话三级 | 久久国产精品72免费观看| 毛片av一区二区三区| 久久97超碰色| 成人中文字幕合集| 91在线视频18| 欧美在线视频日韩| 欧美一区二区精美| 欧美激情综合在线| 亚洲美腿欧美偷拍| 日韩制服丝袜av| 国产乱码一区二区三区| av午夜精品一区二区三区| 色天使色偷偷av一区二区| 欧美高清激情brazzers| 久久久国际精品| 亚洲精品日韩一| 另类调教123区| 波多野结衣欧美| 欧美高清dvd| 欧美激情一区二区三区不卡| 亚洲精品伦理在线| 久久成人免费电影| 成人av第一页| 日韩午夜三级在线| 中文字幕第一区第二区| 亚洲高清免费在线| 国产成人自拍高清视频在线免费播放| 成人免费av网站| 制服丝袜亚洲色图| 国产精品色哟哟网站| 亚洲一区二区精品久久av| 精品一区二区在线播放| 99国产精品国产精品久久| 在线播放中文字幕一区| 国产精品国产精品国产专区不片| 日日摸夜夜添夜夜添亚洲女人| 国v精品久久久网| 欧美一级黄色片| 日韩毛片一二三区| 国模冰冰炮一区二区| 欧美精品粉嫩高潮一区二区| 国产精品久久久久久久久免费相片| 日韩和欧美的一区| 99re在线精品| 日本一区二区视频在线| 久久精品国产色蜜蜜麻豆| 色琪琪一区二区三区亚洲区| 亚洲国产经典视频| 久久精品久久综合| 欧美日韩激情在线| 亚洲日本va午夜在线电影| 国产精品一二一区| 91精品在线观看入口| 亚洲免费观看在线观看| 成人免费黄色大片| 精品久久99ma| 青青草成人在线观看| 欧美在线免费视屏| 亚洲欧洲日韩综合一区二区| 国产在线不卡一卡二卡三卡四卡| 在线播放欧美女士性生活| 亚洲成人综合网站| 在线精品视频免费观看| 亚洲欧美日韩久久| 波多野结衣亚洲| 国产精品毛片久久久久久| 国产综合久久久久影院| 日韩美女天天操| 理论片日本一区| 日韩一区二区三区av| 日韩精品五月天| 欧美一二三区在线| 青娱乐精品视频| 欧美mv日韩mv国产网站| 狠狠色狠狠色综合系列| 国产三级一区二区三区| 国产不卡视频在线播放| 国产精品每日更新| 一本大道av伊人久久综合|