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

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

?? main.s

?? 使用STK500_2 協議的bootloader
?? S
?? 第 1 頁 / 共 2 頁
字號:
	.module main.c
	.area text(rom, con, rel)
	.dbfile F:\job\stk500\AVRMEG~1\bldSTK500\main.c
	.area data(ram, con, rel)
	.dbfile F:\job\stk500\AVRMEG~1\bldSTK500\main.c
_flag::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile F:\job\stk500\AVRMEG~1\bldSTK500\main.c
	.dbfile F:\job\stk500\AVRMEG~1\bldSTK500\para.h
	.dbsym e flag _flag c
	.area bss(ram, con, rel)
	.dbfile F:\job\stk500\AVRMEG~1\bldSTK500\para.h
L2:
	.blkb 2
	.area text(rom, con, rel)
	.dbfile F:\job\stk500\AVRMEG~1\bldSTK500\para.h
	.dbfile F:\job\stk500\AVRMEG~1\bldSTK500\main.c
	.dbfunc e main _main fV
	.dbsym s msgCounter L2 i
;       rec_data -> R20
	.even
_main::
	.dbline -1
	.dbline 40
; /****************************************Copyright (c)**************************************************
; **                               
; **       小松工程出品    ilan2003@163.com 	2006-1-30                            
; **                              
; ** 文   件    名: main.c
; ** 描         述: M16_BOOTLOADER
; ** 版	      本: V1.0
; ** 主  控  芯 片: M16  晶振頻率:7.3728MHZ, 波特率115200
; ** 編  譯  環 境:ICCAVR 6.31A	
; 
; 描    述:使用STK500_2 協議的bootloader,監控芯片 M16,數據通訊RS232
; 		  已經非常精簡的使用STK500_2 協議的MEGA16的bootloader.使用
; 		  ATMEL AVRStudio 4.xx STK500工具的進行軟件升級。
; 		  
; 		  本軟件適合于個人學習,用于商業用途建議加加密措施  
; 		  
; 		  注意事項:在升級firmware后,進行verify,總是出錯,這是正常現象
; 		  因為升級的firmware文件不含bootloader程序,而verify時將讀取整片
; 		  flash的內容,所以總是校驗出錯。如果你不放心,讀取flash的內容和
; 		  你燒寫的firmware對比一下,看看哪里不一致就是了。
; 		  
; 		  大家看看有沒有什么寫的不好的地方,請提出寶貴的意見!
; 		
; **********************************************************************************************************/
; #include <iom16v.h>
; #include <macros.h>
; #include <string.h>
; #include "define.h"
; #include "function.h"
; #include "command.h"
; #include "para.h"
; 
; 
; 
; /**********************************************************************
; functionName:void main(void)
; description:主函數
; **********************************************************************/
; void main(void)
; {
	.dbline 43
; 	uint08 rec_data;
; 	static uint16 msgCounter;
; 	allInit();
	xcall _allInit
	xjmp L4
L3:
	.dbline 45
; 	while(1)
; 	{
	.dbline 46
; 		rec_data=getChar();
	xcall _getChar
	mov R20,R16
	.dbline 47
; 		if(statusMachine == ST_START)
	lds R24,_statusMachine
	cpi R24,240
	brne L6
	.dbline 48
; 		{
	.dbline 49
; 		 	flag = 1;
	ldi R24,1
	sts _flag,R24
	.dbline 50
; 			TCCR1B = 0x00;
	clr R2
	out 0x2e,R2
	.dbline 51
; 			if(rec_data==MESSAGE_START)
	cpi R16,27
	breq X1
	xjmp L7
X1:
	.dbline 52
; 			{
	.dbline 53
; 				statusMachine = ST_GET_SEQ_NUM;	
	ldi R24,241
	sts _statusMachine,R24
	.dbline 54
; 				checkSum = MESSAGE_START;
	ldi R24,27
	sts _checkSum,R24
	.dbline 55
; 			}
	.dbline 56
; 		}
	xjmp L7
L6:
	.dbline 57
; 		else if(statusMachine == ST_GET_SEQ_NUM)
	lds R24,_statusMachine
	cpi R24,241
	brne L10
	.dbline 58
; 		{
	.dbline 59
; 			seqNumber = rec_data;
	sts _seqNumber,R20
	.dbline 60
; 			checkSum ^= rec_data; 
	lds R2,_checkSum
	eor R2,R20
	sts _checkSum,R2
	.dbline 61
; 			statusMachine = ST_MSG_SIZE_1;
	ldi R24,242
	sts _statusMachine,R24
	.dbline 62
; 		}
	xjmp L11
L10:
	.dbline 63
; 		else if(statusMachine == ST_MSG_SIZE_1)
	lds R24,_statusMachine
	cpi R24,242
	brne L12
	.dbline 64
; 		{
	.dbline 65
; 			msgSize = rec_data;
	mov R2,R20
	clr R3
	sts _msgSize+1,R3
	sts _msgSize,R2
	.dbline 66
; 			msgSize <<=8;
	mov R3,R2
	clr R2
	sts _msgSize+1,R3
	sts _msgSize,R2
	.dbline 67
; 			checkSum ^= rec_data;
	lds R2,_checkSum
	eor R2,R20
	sts _checkSum,R2
	.dbline 68
; 			statusMachine = ST_MSG_SIZE_2;	
	ldi R24,243
	sts _statusMachine,R24
	.dbline 69
; 		}
	xjmp L13
L12:
	.dbline 70
; 		else if(statusMachine == ST_MSG_SIZE_2)
	lds R24,_statusMachine
	cpi R24,243
	brne L14
	.dbline 71
; 		{
	.dbline 72
; 			msgSize |= rec_data;
	mov R2,R20
	clr R3
	lds R4,_msgSize
	lds R5,_msgSize+1
	or R4,R2
	or R5,R3
	sts _msgSize+1,R5
	sts _msgSize,R4
	.dbline 73
; 			checkSum ^= rec_data;
	lds R2,_checkSum
	eor R2,R20
	sts _checkSum,R2
	.dbline 74
; 			statusMachine = ST_GET_TOKEN;	
	ldi R24,244
	sts _statusMachine,R24
	.dbline 75
; 		}
	xjmp L15
L14:
	.dbline 76
; 		else if(statusMachine == ST_GET_TOKEN)
	lds R24,_statusMachine
	cpi R24,244
	brne L16
	.dbline 77
; 		{
	.dbline 78
; 			if(rec_data==TOKEN)
	cpi R20,14
	brne L18
	.dbline 79
; 			{
	.dbline 80
; 				checkSum ^= rec_data;
	lds R2,_checkSum
	eor R2,R20
	sts _checkSum,R2
	.dbline 81
; 				statusMachine = ST_GET_DATA;
	ldi R24,245
	sts _statusMachine,R24
	.dbline 82
; 				msgCounter=0;
	clr R2
	clr R3
	sts L2+1,R3
	sts L2,R2
	.dbline 83
; 			}
	xjmp L17
L18:
	.dbline 85
; 			else
; 			{
	.dbline 86
; 				statusMachine = ST_START;
	ldi R24,240
	sts _statusMachine,R24
	.dbline 87
; 			}
	.dbline 88
; 		}
	xjmp L17
L16:
	.dbline 89
; 		else if(statusMachine == ST_GET_DATA)
	lds R24,_statusMachine
	cpi R24,245
	brne L20
	.dbline 90
; 		{
	.dbline 91
; 			msg_buffer[msgCounter++]=rec_data;
	lds R2,L2
	lds R3,L2+1
	movw R24,R2
	adiw R24,1
	sts L2+1,R25
	sts L2,R24
	ldi R24,<_msg_buffer
	ldi R25,>_msg_buffer
	movw R30,R2
	add R30,R24
	adc R31,R25
	std z+0,R20
	.dbline 92
; 			checkSum ^= rec_data;
	lds R2,_checkSum
	eor R2,R20
	sts _checkSum,R2
	.dbline 93
; 			if(msgCounter==msgSize)
	lds R2,_msgSize
	lds R3,_msgSize+1
	lds R4,L2
	lds R5,L2+1
	cp R4,R2
	cpc R5,R3
	brne L21
	.dbline 94
; 			{
	.dbline 95
; 				statusMachine = ST_GET_CHECK;
	ldi R24,246
	sts _statusMachine,R24
	.dbline 96
; 			}
	.dbline 97
; 		}
	xjmp L21
L20:
	.dbline 98
; 		else if(statusMachine == ST_GET_CHECK)
	lds R24,_statusMachine
	cpi R24,246
	brne L24
	.dbline 99
; 		{
	.dbline 100
; 			if(rec_data == checkSum)
	lds R2,_checkSum
	cp R20,R2
	brne L26
	.dbline 101
; 			{
	.dbline 102
; 				packageProcess(seqNumber);
	lds R16,_seqNumber
	xcall _packageProcess
	.dbline 103
; 			}		
L26:
	.dbline 104
; 			statusMachine = ST_START;	
	ldi R24,240
	sts _statusMachine,R24
	.dbline 105
; 		}
L24:
L21:
L17:
L15:
L13:
L11:
L7:
	.dbline 106
L4:
	.dbline 44
	xjmp L3
X0:
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbsym r rec_data 20 c
	.dbend
	.dbfunc e packageProcess _packageProcess fV
;         temp16 -> R10,R11
;  start_address -> y+2
;            cmd -> R14
;            tmp -> y+8
;      num_bytes -> y+6
;              i -> R12,R13
;         seqNum -> y+19
	.even
_packageProcess::
	st -y,r17
	st -y,r16
	xcall push_gset5
	sbiw R28,9
	.dbline -1
	.dbline 117
; 	}
; }
; 
; 	
; 	
; 
; /**********************************************************************
; functionName:void packageProcess(uint08 seqNum) 
; description:數據包的處理過程
; **********************************************************************/		
; void packageProcess(uint08 seqNum) 
; {
	.dbline 119
; 	uint08 cmd;
; 	uint08 tmp=0;
	clr R0
	std y+8,R0
	.dbline 121
; 	uint16 i;
; 	uint16 num_bytes=0;
	clr R1
	std y+7,R1
	std y+6,R0
	.dbline 122
; 	uint32 start_address = address;
	lds R2,_address
	lds R3,_address+1
	clr R4
	clr R5
	std y+2,R2
	std y+3,R3
	std y+4,R4
	std y+5,R5
	.dbline 124
; 	
; 	cmd = msg_buffer[0];
	lds R14,_msg_buffer
	.dbline 126
; 	//命令CMD_SIGN_ON
; 	if(cmd==CMD_SIGN_ON)
	mov R24,R14
	cpi R24,1
	brne L29
	.dbline 127
; 	{
	.dbline 128
; 		num_bytes = 11;
	ldi R24,11
	ldi R25,0
	std y+7,R25
	std y+6,R24
	.dbline 129
; 		msg_buffer[0] = CMD_SIGN_ON;
	ldi R24,1
	sts _msg_buffer,R24
	.dbline 130
; 		msg_buffer[1] = STATUS_CMD_OK;
	clr R2
	sts _msg_buffer+1,R2
	.dbline 131
; 		msg_buffer[2] = 8;
	ldi R24,8
	sts _msg_buffer+2,R24
	.dbline 132
; 		memcpy(msg_buffer+3,"STK500_2",8);
	std y+1,R25
	std y+0,R24
	ldi R18,<L34
	ldi R19,>L34
	ldi R16,<_msg_buffer+3
	ldi R17,>_msg_buffer+3
	xcall _memcpy
	.dbline 133
; 	}
	xjmp L30
L29:
	.dbline 135
; 	//命令CMD_SET_PARAMETER
; 	else if(cmd==CMD_SET_PARAMETER)
	mov R24,R14
	cpi R24,2
	brne L35
	.dbline 136
; 	{
	.dbline 137
; 		num_bytes = 2;
	ldi R24,2
	ldi R25,0
	std y+7,R25
	std y+6,R24
	.dbline 138
; 		msg_buffer[0] = CMD_SET_PARAMETER;
	sts _msg_buffer,R24
	.dbline 139
; 		msg_buffer[1] = STATUS_CMD_OK;
	clr R2
	sts _msg_buffer+1,R2
	.dbline 140
; 	}
	xjmp L36
L35:
	.dbline 142
; 	//命令CMD_GET_PARAMETER
; 	else if(cmd==CMD_GET_PARAMETER)
	mov R24,R14
	cpi R24,3
	brne L38
	.dbline 143
; 	{
	.dbline 144
; 		switch(msg_buffer[1])
	lds R10,_msg_buffer+1
	clr R11
	movw R24,R10
	cpi R24,146
	ldi R30,0
	cpc R25,R30
	breq L44
	cpi R24,148
	ldi R30,0
	cpc R25,R30
	breq L46
	cpi R24,149
	ldi R30,0
	cpc R25,R30
	breq L47
	cpi R24,146
	ldi R30,0
	cpc R25,R30
	brlt L40
L48:
	movw R24,R10
	cpi R24,158
	ldi R30,0
	cpc R25,R30
	breq L45
	xjmp L40
X2:
	.dbline 145
; 		{
L44:
	.dbline 159
; 			/*case PARAM_BUILD_NUMBER_LOW:
; 				tmp = CONFIG_PARAM_BUILD_NUMBER_LOW;
; 				break;
; 			case PARAM_BUILD_NUMBER_HIGH:
; 				tmp = CONFIG_PARAM_BUILD_NUMBER_HIGH;
; 				break;
; 			case PARAM_HW_VER:
; 				tmp = CONFIG_PARAM_HW_VER;
; 				break;
; 			case PARAM_SW_MAJOR:
; 				tmp = CONFIG_PARAM_SW_MAJOR;
; 				break;*/
; 			case PARAM_SW_MINOR:
; 				tmp = CONFIG_PARAM_SW_MINOR;
	ldi R24,4
	std y+8,R24
	.dbline 160
; 				break;
	xjmp L41
L45:
	.dbline 162
; 			case PARAM_RESET_POLARITY:
; 				tmp = resetPolarity;
	lds R2,_resetPolarity
	std y+8,R2
	.dbline 163
; 				break;
	xjmp L41
L46:
	.dbline 165
; 			case PARAM_VTARGET:				//目標電壓
; 				tmp = 50;
	ldi R24,50
	std y+8,R24
	.dbline 166
; 				break;	
	xjmp L41
L47:
	.dbline 168
; 			case PARAM_VADJUST:
; 				tmp = 50;				//參考電壓
	ldi R24,50
	std y+8,R24
	.dbline 169
; 				break;
	xjmp L41
L40:
	.dbline 180
; 			/*case PARAM_TOPCARD_DETECT:
; 				tmp = TOP_CARD_STK520;
; 				break;
; 			case PARAM_CONTROLLER_INIT:
; 				tmp = paramControllerInit;
; 				break;
; 			case PARAM_SCK_DURATION:
; 				tmp = clockSpeed;
; 				break;*/
; 			default:
; 				tmp = CONFIG_PARAM_SW_MAJOR;
	ldi R24,2
	std y+8,R24
	.dbline 181
; 				break;		
L41:
	.dbline 183
; 		}
; 		num_bytes = 3;
	ldi R24,3
	ldi R25,0
	std y+7,R25
	std y+6,R24
	.dbline 184
; 		msg_buffer[0] = CMD_GET_PARAMETER;
	sts _msg_buffer,R24
	.dbline 185
; 		msg_buffer[1] = STATUS_CMD_OK;
	clr R2
	sts _msg_buffer+1,R2
	.dbline 186
; 		msg_buffer[2] = tmp;
	ldd R0,y+8
	sts _msg_buffer+2,R0
	.dbline 187
; 	}
	xjmp L39
L38:
	.dbline 196
; 	//命令CMD_OSCCAL
; 	/*else if(cmd==CMD_OSCCAL)
; 	{
; 		num_bytes = 2;
; 		msg_buffer[0] = CMD_OSCCAL;
; 		msg_buffer[1] = STATUS_CMD_OK;
; 	}*/
; 	//命令CMD_LOAD_ADDRESS
; 	else if(cmd==CMD_LOAD_ADDRESS)
	mov R24,R14
	cpi R24,6
	brne L51
	.dbline 197
; 	{
	.dbline 200
; 		//address =  ((unsigned long)msg_buffer[1])<<24;
; 		//address |= ((unsigned long)msg_buffer[2])<<16;
; 		address = ((unsigned long)msg_buffer[3])<<8;
	ldi R24,8
	ldi R25,0
	lds R16,_msg_buffer+3
	clr R17
	clr R18
	clr R19
	st -y,R24
	xcall lsl32
	sts _address+1,R17
	sts _address,R16
	.dbline 201
; 		address |= ((unsigned long)msg_buffer[4]);
	lds R2,_msg_buffer+4
	clr R3
	clr R4
	clr R5
	movw R6,R16
	clr R8
	clr R9
	or R6,R2
	or R7,R3
	or R8,R4
	or R9,R5
	sts _address+1,R7
	sts _address,R6

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久国产精品人| 成人免费视频视频| 五月天丁香久久| 亚洲一区二区三区四区在线| 中文一区一区三区高中清不卡| 久久久久久久久久久99999| 国产日韩欧美一区二区三区综合 | 欧美在线视频不卡| 色av一区二区| 日韩午夜小视频| 色综合视频一区二区三区高清| 欧美日韩电影在线| 中文字幕日韩精品一区| 成人少妇影院yyyy| 91麻豆精品在线观看| 日韩三级高清在线| 日韩欧美黄色影院| 成人欧美一区二区三区小说 | 亚洲老司机在线| 欧美视频第二页| 中文字幕不卡一区| 黄色日韩网站视频| 一区二区三区高清在线| 日韩影院免费视频| 国产成都精品91一区二区三| 国产欧美日韩麻豆91| 亚洲成人中文在线| 喷白浆一区二区| 国产成人精品免费视频网站| 国产亚洲欧美一区在线观看| 成人av网站免费| 亚洲一区二区三区免费视频| 成人动漫视频在线| 日韩午夜在线影院| 亚洲国产综合91精品麻豆| 欧美性生交片4| ...xxx性欧美| 成人va在线观看| 久久精品夜色噜噜亚洲aⅴ| 日韩电影在线观看一区| av资源网一区| 国产精品免费看片| 国产v综合v亚洲欧| 欧美一二三在线| 亚洲bt欧美bt精品| 欧美亚洲国产一区二区三区| 亚洲精品国产精华液| 色婷婷综合久久久中文字幕| 国产精品久久久久一区二区三区| 蜜桃久久久久久久| 久久综合九色欧美综合狠狠| 久久99久国产精品黄毛片色诱| 欧美日韩精品三区| 麻豆精品在线播放| 精品国产一区二区三区四区四| 中文字幕不卡三区| 欧美午夜片在线观看| 亚洲影视在线播放| 日韩美一区二区三区| 激情欧美一区二区| 国产欧美一区二区三区鸳鸯浴 | 亚洲成精国产精品女| 国产亚洲午夜高清国产拍精品| 亚洲综合色区另类av| 久久精品国产成人一区二区三区 | 国产一区二区不卡老阿姨| 国产亚洲精品bt天堂精选| 中文字幕精品三区| 久久综合视频网| 久久亚洲影视婷婷| 久久蜜臀精品av| 久久精品国产精品亚洲红杏 | 精品一区二区影视| 日韩欧美国产综合在线一区二区三区| 麻豆精品一区二区三区| 久久人人爽爽爽人久久久| 国产很黄免费观看久久| 亚洲视频在线观看一区| 欧美蜜桃一区二区三区| 看电影不卡的网站| 国产精品久久久久久久久免费桃花 | 久久精品99久久久| 国产日本欧美一区二区| 色狠狠色狠狠综合| 日韩二区在线观看| 国产精品久久久久久久久免费樱桃 | 欧美精品一卡二卡| 成人性生交大合| 性做久久久久久久久| 久久人人爽人人爽| 欧洲一区在线电影| 免费欧美高清视频| 亚洲免费av网站| 欧美电视剧在线看免费| 91丝袜美腿高跟国产极品老师 | 国产成人综合亚洲网站| 国产精品国产三级国产有无不卡| 91福利视频久久久久| 九色|91porny| 一个色在线综合| 日韩欧美一区二区免费| 在线免费视频一区二区| 国产成人午夜片在线观看高清观看| 洋洋av久久久久久久一区| 久久婷婷一区二区三区| 欧美日韩大陆一区二区| 99久久久久久| 久久91精品久久久久久秒播| 亚洲女同一区二区| 国产欧美日韩综合精品一区二区| 91精品国产综合久久精品麻豆| 粉嫩一区二区三区性色av| 蜜臀久久99精品久久久久宅男 | 精品国产乱码久久久久久影片| 欧洲色大大久久| 色婷婷精品大视频在线蜜桃视频| 国产mv日韩mv欧美| 波多野结衣亚洲| 99亚偷拍自图区亚洲| 9i看片成人免费高清| 91免费在线看| 在线观看亚洲一区| 91麻豆精品国产91久久久更新时间| 欧美日韩亚洲综合| 欧美放荡的少妇| 日韩欧美一级二级三级| 精品国产91乱码一区二区三区| 精品日韩一区二区三区| 国产欧美日产一区| 亚洲欧洲成人自拍| 亚洲国产视频a| 亚洲成人自拍网| 国产在线精品一区二区三区不卡| 国产精品资源站在线| 国产91丝袜在线18| 色伊人久久综合中文字幕| 欧美日韩色一区| 欧美变态tickling挠脚心| 久久精品亚洲精品国产欧美kt∨| 中文字幕免费不卡| 亚洲精品欧美激情| 久久成人羞羞网站| 丰满少妇在线播放bd日韩电影| 色一情一伦一子一伦一区| 欧美一级二级三级蜜桃| 国产精品美女久久久久aⅴ国产馆| 亚洲欧美二区三区| 久久福利视频一区二区| 91在线免费视频观看| 日韩午夜精品电影| 亚洲三级小视频| 日本va欧美va瓶| 99久久精品情趣| 91精品国产入口| 中文字幕中文字幕在线一区| 亚洲国产精品久久久男人的天堂| 久99久精品视频免费观看| 91偷拍与自偷拍精品| 欧美精品一区二区三区高清aⅴ| 中文字幕亚洲精品在线观看 | 高清不卡在线观看| 欧美色倩网站大全免费| 国产精品色哟哟网站| 日韩av在线播放中文字幕| 成人一区二区视频| 欧美成人官网二区| 亚洲国产综合人成综合网站| 国产福利91精品| 日韩欧美不卡在线观看视频| 亚洲欧美福利一区二区| 国产成a人亚洲精品| 日韩三级电影网址| 天天操天天色综合| 色婷婷精品久久二区二区蜜臂av| 久久久精品免费免费| 老司机免费视频一区二区三区| 在线观看av一区| 亚洲欧洲国产日本综合| 国产风韵犹存在线视精品| 日韩精品资源二区在线| 天天亚洲美女在线视频| 在线观看视频一区二区| 亚洲欧美日韩成人高清在线一区| 久久精品国产免费| 51精品国自产在线| 亚洲国产精品久久一线不卡| 91成人在线观看喷潮| 亚洲天堂网中文字| 不卡在线视频中文字幕| 国产精品毛片a∨一区二区三区| 黑人巨大精品欧美一区| 欧美电影精品一区二区| 久久精品国产久精国产| 日韩免费性生活视频播放| 久久国产夜色精品鲁鲁99| 日韩三级av在线播放| 日本不卡1234视频| 精品精品国产高清a毛片牛牛| 日韩av网站免费在线| 91精品久久久久久久91蜜桃|