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

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

?? bootloader.lst

?? Atmega系列單片機 BootLoader程序
?? LST
?? 第 1 頁 / 共 2 頁
字號:
__start:
__text_start:
    1C2A E001      LDI	R16,1
    1C2B BF05      OUT	0x35,R16
    1C2C E002      LDI	R16,2
    1C2D BF05      OUT	0x35,R16
    1C2E E5CF      LDI	R28,0x5F
    1C2F E0D4      LDI	R29,4
    1C30 BFCD      OUT	0x3D,R28
    1C31 BFDE      OUT	0x3E,R29
    1C32 51C0      SUBI	R28,0x10
    1C33 40D0      SBCI	R29,0
    1C34 EA0A      LDI	R16,0xAA
    1C35 8308      STD	Y+0,R16
    1C36 2400      CLR	R0
    1C37 E6E0      LDI	R30,0x60
    1C38 E0F0      LDI	R31,0
    1C39 E010      LDI	R17,0
    1C3A 3EE4      CPI	R30,0xE4
    1C3B 07F1      CPC	R31,R17
    1C3C F011      BEQ	0x1C3F
    1C3D 9201      ST	R0,Z+
    1C3E CFFB      RJMP	0x1C3A
    1C3F 8300      STD	Z+0,R16
    1C40 E5E4      LDI	R30,0x54
    1C41 E3F8      LDI	R31,0x38
    1C42 E6A0      LDI	R26,0x60
    1C43 E0B0      LDI	R27,0
    1C44 E318      LDI	R17,0x38
    1C45 35E4      CPI	R30,0x54
    1C46 07F1      CPC	R31,R17
    1C47 F021      BEQ	0x1C4C
    1C48 95C8      LPM
    1C49 9631      ADIW	R30,1
    1C4A 920D      ST	R0,X+
    1C4B CFF9      RJMP	0x1C45
    1C4C D11D      RCALL	_main
_exit:
    1C4D CFFF      RJMP	_exit
FILE: D:\桌面\AVR_BO~1.2\bootloader\assembly.s
(0001) 		.text
(0002) 
(0003) ;*********************************************************
(0004) ;*********************************************************
(0005) ;*********************************************************
(0006) ;*********************************************************
(0007) ; DO NOT CHANGE ANYTHING BELOW THIS LINE !!!!!!!
(0008) ;*********************************************************
(0009) ;*********************************************************
(0010) ;*********************************************************
(0011) ;*********************************************************
(0012) 
(0013) 
(0014)     SPMCR = 0x57
(0015) 
(0016) 
(0017) ;-----------------------------------------  
(0018) 
(0019) ; void write_page (unsigned int adr, unsigned char function);
(0020) ; bits 8:15 adr addresses the page...(must setup RAMPZ beforehand!!!)
(0021) _write_page::
(0022)     XCALL __WAIT_SPMEN__
_write_page:
    1C4E D01F      RCALL	0x1C6E
(0023)     movw    r30, r16        ;move address to z pointer (R31 = ZH, R30 = ZL)
    1C4F 01F8      MOVW	R30,R16
(0024)     STS     SPMCR, R18      ;argument 2 decides function
    1C50 93200057  STS	0x57,R18
(0025)     SPM                     ;perform pagewrite
    1C52 95E8      SPM
(0026)     RET
    1C53 9508      RET
(0027) 
(0028) ;-----------------------------------------
(0029) 
(0030) ; void fill_temp_buffer (unsigned int data, unsigned int adr);
(0031) ; bits 7:1 in adr addresses the word in the page... (2=first word, 4=second word etc..)
(0032) _fill_temp_buffer::
(0033)     XCALL __WAIT_SPMEN__
_fill_temp_buffer:
    1C54 D019      RCALL	0x1C6E
(0034)     movw    r30, r18        ;move adress to z pointer (R31=ZH R30=ZL)
    1C55 01F9      MOVW	R30,R18
(0035)     movw    r0, r16         ;move data to reg 0 and 1
    1C56 0108      MOVW	R0,R16
(0036)     LDI     R19, 0x01
    1C57 E031      LDI	R19,1
(0037)     STS     SPMCR, R19
    1C58 93300057  STS	0x57,R19
(0038)     SPM                     ;Store program memory
    1C5A 95E8      SPM
(0039)     RET      
    1C5B 9508      RET
(0040) 	
(0041) ;-----------------------------------------	
(0042) 
(0043) ;unsigned char read_flash(unsigned int add);
(0044) _read_flash::
(0045)     mov r31,r17
_read_flash:
    1C5C 2FF1      MOV	R31,R17
(0046)     mov r30,r16
    1C5D 2FE0      MOV	R30,R16
(0047)     lpm r16,z
    1C5E 9104      LPM	R16,0(Z)
(0048)     clr r17
    1C5F 2711      CLR	R17
(0049)     ret	
    1C60 9508      RET
(0050) 		
(0051) ;unsigned int read_program_memory (unsigned int adr ,unsigned char cmd);
(0052) _read_program_memory::
(0053)     movw    r30, r16        ;move adress to z pointer
_read_program_memory:
    1C61 01F8      MOVW	R30,R16
(0054)     SBRC    R18, 0          ;read lockbits? (second argument = 0x09)
    1C62 FD20      SBRC	R18,0
(0055)     STS     SPMCR, R18      ;if so, place second argument in SPMEN register
    1C63 93200057  STS	0x57,R18
(0056)     LPM     r16, Z+
    1C65 9105      LPM	R16,Z+
(0057)     LPM     r17, Z
    1C66 9114      LPM	R17,0(Z)
(0058)     RET
    1C67 9508      RET
(0059) 	
(0060) ;-----------------------------------------
(0061)         
(0062) _enableRWW::
(0063) 	XCALL __WAIT_SPMEN__
_enableRWW:
    1C68 D005      RCALL	0x1C6E
(0064)     LDI R27,0x11
    1C69 E1B1      LDI	R27,0x11
(0065)     STS SPMCR,R27
    1C6A 93B00057  STS	0x57,R27
(0066)     SPM
    1C6C 95E8      SPM
(0067)     RET   
    1C6D 9508      RET
(0068) 	
(0069) ;-----------------------------------------           
(0070) 
(0071) __WAIT_SPMEN__:
(0072)     LDS     R27,SPMCR       ; load SPMCR to R27
    1C6E 91B00057  LDS	R27,0x57
(0073)     SBRC    R27,0           ; check SPMEN flag
    1C70 FDB0      SBRC	R27,0
(0074)     RJMP    __WAIT_SPMEN__  ; wait for SPMEN flag cleared        
    1C71 CFFC      RJMP	0x1C6E
(0075)     RET
    1C72 9508      RET
FILE: D:\桌面\AVR_BO~1.2\bootloader\main.c
(0001) /******************************************************************************
(0002) Atmega系列單片機 BootLoader程序  
(0003) 日  期:2007年4月
(0004) 作  者:likeeavr
(0005) 版權所有:avrvi論壇
(0006) 
(0007) 說明:當前版本只針對本論壇M16開發板
(0008) 
(0009) 上位機借用了馮建輝的程序。
(0010) 
(0011) /*****************************************************************************/
(0012) #include <macros.h>
(0013) #include "assembly.h"
(0014)  
(0015) #define  ChipType     Atmega16       
(0016)       
(0017) //*********************************************************
(0018) //選擇BOOT區大小  此必須與ICC options中的選項相對應
(0019) //#define  BootSize     'a'    //128   
(0020) //#define  BootSize     'b'    //256
(0021) //#define  BootSize     'c'    //512
(0022) #define    BootSize       'd'    //1024
(0023) //選擇BootLoad版本號
(0024) #define  BootVer        'f'    //1.0版本
(0025) 
(0026) //**********************************************************
(0027) 
(0028) #define  Atmega16       0x31
(0029) 
(0030) //*****************************************************************************
(0031) #define  InteClk                 //是否使用內部時鐘
(0032) #define  OscAddress     0x1fff   //時鐘校準值存儲地址
(0033) 
(0034) //*****************************************************************************
(0035) //7.3728M時鐘下的波特率為19200的設置,此設置可根據ICC生成,選對芯片,時鐘,波特率既可
(0036) //由此語句調用UBRR = BAU;
(0037) #define  BAU  23    // 7.3728M 19200
(0038) //#define  BAU  191 // 7.3728M 2400
(0039) //#define  BAU  95  // 7.3728M 4800
(0040) //#define  BAU  47  // 7.3728M 9600
(0041) //#define  BAU  31  // 7.3728M 14400
(0042) //#define  BAU  23  // 7.3728M 19200
(0043) //#define  BAU  15  // 7.3728M 28800
(0044) 
(0045) //#define  BAU  38  // 12M 19200
(0046) 
(0047) //*****************************************************************************
(0048) 
(0049) #include  <iom16v.h>
(0050) #define   PageByte 	 	 128    
(0051) #define   AddressShift 	 7
(0052) #define	INTVECREG	 	 GICR
(0053) 
(0054) 
(0055) void          FlashLoad        (void);
(0056) void          GetPageNumber    (void);
(0057) void          ExecCode         (void);
(0058) char          GetPage          (void);
(0059) void          WriteFlash       (void);
(0060) char          CheckFlash       (void);
(0061) unsigned char IsChar           (void);
(0062) void          SendChar         (unsigned char c);
(0063) void          delay            (void);                 //1ms延時函數
(0064) unsigned char RecChar          (void);
(0065) 
(0066) unsigned char PageBuffer[PageByte];
(0067) unsigned int  RealPageAddress;
(0068) unsigned int  PageAddress;
(0069) 
(0070) /*****************************************************************************/
(0071) //Flash編程								                     
(0072) /*****************************************************************************/
(0073) void FlashLoad(void)
(0074)   {
(0075)     SendChar('!');
_FlashLoad:
    1C73 E201      LDI	R16,0x21
    1C74 D0E0      RCALL	_SendChar
    1C75 C019      RJMP	0x1C8F
(0076)     while (1)
(0077)     {
(0078) 	 GetPageNumber();
    1C76 D01A      RCALL	_GetPageNumber
(0079) 
(0080) 	 if (RealPageAddress == 0xffff) 
    1C77 91800062  LDS	R24,RealPageAddress
    1C79 91900063  LDS	R25,RealPageAddress+1
    1C7B 3F8F      CPI	R24,0xFF
    1C7C EFEF      LDI	R30,0xFF
    1C7D 079E      CPC	R25,R30
    1C7E F409      BNE	0x1C80
(0081) 	   return;
    1C7F C010      RJMP	0x1C90
(0082)         
(0083) 	 if (GetPage())
    1C80 D028      RCALL	_GetPage
    1C81 2300      TST	R16
    1C82 F051      BEQ	0x1C8D
(0084) 	  {
(0085) 		WriteFlash();
    1C83 D061      RCALL	_WriteFlash
(0086) 	    if (CheckFlash()) 
    1C84 D093      RCALL	_CheckFlash
    1C85 2300      TST	R16
    1C86 F019      BEQ	0x1C8A
(0087) 		  SendChar('!');
    1C87 E201      LDI	R16,0x21
    1C88 D0CC      RCALL	_SendChar
    1C89 C005      RJMP	0x1C8F
(0088) 	    else 
(0089) 		  SendChar('@');
    1C8A E400      LDI	R16,0x40
    1C8B D0C9      RCALL	_SendChar
(0090) 	  }
    1C8C C002      RJMP	0x1C8F
(0091) 	 else 
(0092) 	   SendChar('@');
    1C8D E400      LDI	R16,0x40
    1C8E D0C6      RCALL	_SendChar
    1C8F CFE6      RJMP	0x1C76
    1C90 9508      RET
_GetPageNumber:
  PageAddressL         --> R20
  PageAddressH         --> R22
    1C91 940E1DBC  CALL	push_gset2
(0093)     }
(0094)   }
(0095) 
(0096) /*****************************************************************************/
(0097) void GetPageNumber(void)
(0098)   {
(0099)     unsigned char PageAddressH;
(0100)     unsigned char PageAddressL;
(0101) 
(0102)     PageAddressH = RecChar();
    1C93 D0BD      RCALL	_RecChar
    1C94 2F60      MOV	R22,R16
(0103) 
(0104)     PageAddressL = RecChar();
    1C95 D0BB      RCALL	_RecChar
    1C96 2F40      MOV	R20,R16
(0105) 
(0106)     RealPageAddress=(int)((PageAddressH << 8) + PageAddressL);
    1C97 2E36      MOV	R3,R22
    1C98 2E24      MOV	R2,R20
    1C99 92300063  STS	RealPageAddress+1,R3
    1C9B 92200062  STS	RealPageAddress,R2
(0107) 	PageAddress=RealPageAddress<<AddressShift;
    1C9D E027      LDI	R18,7
    1C9E E030      LDI	R19,0
    1C9F 0181      MOVW	R16,R2
    1CA0 940E1DD5  CALL	lsl16
    1CA2 93100061  STS	PageAddress+1,R17
    1CA4 93000060  STS	PageAddress,R16
    1CA6 940E1DB0  CALL	pop_gset2
    1CA8 9508      RET
_GetPage:
  CheckSum             --> R20
  LocalCheckSum        --> R22
  i                    --> R10
    1CA9 940E1DBA  CALL	push_gset3
(0108) #ifdef RAMPZ_FLAG
(0109)     if (PageAddressH) 
(0110) 	   RAMPZ = 1; 
(0111)     else 
(0112) 	   RAMPZ = 0;
(0113) #endif	
(0114)   }
(0115) 
(0116) /*****************************************************************************/
(0117) char GetPage(void)
(0118)   {
(0119)     unsigned char i;
(0120)     unsigned char LocalCheckSum = 0;
    1CAB 2766      CLR	R22
(0121)     unsigned char CheckSum = 0;
    1CAC 2744      CLR	R20
(0122) 
(0123)     for (i=0;i<PageByte/2;i++)
    1CAD 24AA      CLR	R10
    1CAE C012      RJMP	0x1CC1
(0124) 	{
(0125) 	 while(!IsChar());
    1CAF D09B      RCALL	_IsChar
    1CB0 2300      TST	R16
    1CB1 F3E9      BEQ	0x1CAF
(0126) 	 PageBuffer[i]=RecChar();
    1CB2 D09E      RCALL	_RecChar
    1CB3 E684      LDI	R24,0x64
    1CB4 E090      LDI	R25,0
    1CB5 2DEA      MOV	R30,R10
    1CB6 27FF      CLR	R31
    1CB7 0FE8      ADD	R30,R24
    1CB8 1FF9      ADC	R31,R25
    1CB9 8300      STD	Z+0,R16
(0127) 	 LocalCheckSum ^= PageBuffer[i];
    1CBA 2DEA      MOV	R30,R10
    1CBB 27FF      CLR	R31
    1CBC 0FE8      ADD	R30,R24
    1CBD 1FF9      ADC	R31,R25
    1CBE 8020      LDD	R2,Z+0
    1CBF 2562      EOR	R22,R2
    1CC0 94A3      INC	R10
    1CC1 2D8A      MOV	R24,R10
    1CC2 3480      CPI	R24,0x40
    1CC3 F358      BCS	0x1CAF
(0128)    	}
(0129) 	for (i=0;i<PageByte/2;i++)
    1CC4 24AA      CLR	R10
    1CC5 C012      RJMP	0x1CD8
(0130) 	{
(0131) 	 while(!IsChar());
    1CC6 D084      RCALL	_IsChar
    1CC7 2300      TST	R16
    1CC8 F3E9      BEQ	0x1CC6
(0132) 	 PageBuffer[i+PageByte/2]=RecChar();
    1CC9 D087      RCALL	_RecChar
    1CCA EA84      LDI	R24,0xA4
    1CCB E090      LDI	R25,0
    1CCC 2DEA      MOV	R30,R10
    1CCD 27FF      CLR	R31
    1CCE 0FE8      ADD	R30,R24
    1CCF 1FF9      ADC	R31,R25
    1CD0 8300      STD	Z+0,R16
(0133) 	 LocalCheckSum ^= PageBuffer[i+PageByte/2];
    1CD1 2DEA      MOV	R30,R10
    1CD2 27FF      CLR	R31
    1CD3 0FE8      ADD	R30,R24
    1CD4 1FF9      ADC	R31,R25
    1CD5 8020      LDD	R2,Z+0
    1CD6 2562      EOR	R22,R2
    1CD7 94A3      INC	R10
    1CD8 2D8A      MOV	R24,R10
    1CD9 3480      CPI	R24,0x40
    1CDA F358      BCS	0x1CC6
(0134)    	}	   
(0135)     CheckSum = RecChar(); 
    1CDB D075      RCALL	_RecChar
    1CDC 2F40      MOV	R20,R16
(0136) 	
(0137)     if (LocalCheckSum == CheckSum) 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区不卡在线| 日韩电影在线一区二区| 欧美精品一区二区三区在线播放 | 一区二区三区免费观看| 亚洲一区二区三区四区五区中文| 亚洲一区在线看| 亚洲一区二区三区爽爽爽爽爽| 日韩成人一区二区三区在线观看| 国产一区二区网址| 91免费视频网址| 日韩欧美一区二区视频| 中文欧美字幕免费| 亚洲成人1区2区| 国产成人综合视频| 91黄视频在线| 久久精品亚洲一区二区三区浴池| 亚洲欧美乱综合| 蜜桃久久久久久| 99re成人精品视频| 日韩视频免费观看高清完整版在线观看| 久久九九久精品国产免费直播| 午夜精品福利一区二区蜜股av| 国产一区二区按摩在线观看| 在线观看日韩高清av| 在线不卡a资源高清| 国产日韩欧美激情| 日本欧美加勒比视频| 91免费国产在线| 国产亚洲va综合人人澡精品| 日韩av午夜在线观看| 91美女片黄在线| 中文字幕av不卡| 久久国产精品区| 欧美久久高跟鞋激| 性做久久久久久免费观看欧美| 国产美女视频一区| 精品免费国产一区二区三区四区| 亚洲chinese男男1069| 色综合久久久久综合体| 国产精品美日韩| 国产毛片精品一区| 2024国产精品视频| 久久不见久久见免费视频1| 懂色av一区二区三区免费观看| 91精品国产欧美一区二区成人| 亚洲美女淫视频| 国产一区二区精品在线观看| 日韩欧美一区在线| 免费看欧美美女黄的网站| 欧美影视一区在线| 一区二区三区免费看视频| 99在线精品观看| 一区二区三区免费观看| 在线视频中文字幕一区二区| 国产精品福利一区| 欧美网站一区二区| 精品欧美黑人一区二区三区| 狠狠色丁香久久婷婷综合_中| 精品久久国产老人久久综合| 精品伊人久久久久7777人| 久久这里都是精品| 国产精品1区2区| 国产精品久久久久久久久久免费看| 国产大陆亚洲精品国产| 国产精品美女一区二区在线观看| 丁香一区二区三区| 亚洲三级在线免费| 成人综合婷婷国产精品久久| 久久久亚洲欧洲日产国码αv| 亚洲h在线观看| 日韩一级视频免费观看在线| 老司机精品视频线观看86| 久久久亚洲精品石原莉奈| 成人一区二区三区视频在线观看| 国产精品久久久久精k8| 日本久久精品电影| 美脚の诱脚舐め脚责91| 国产视频一区在线播放| 成人午夜激情片| 亚洲电影中文字幕在线观看| 欧美精品在线一区二区| 国产综合色产在线精品| 中文字幕亚洲欧美在线不卡| 91高清视频在线| 免费成人在线观看| 国产精品丝袜黑色高跟| 欧美日韩免费观看一区二区三区 | 色哟哟一区二区三区| 亚洲超碰精品一区二区| 久久久噜噜噜久久中文字幕色伊伊| 成人黄色国产精品网站大全在线免费观看 | 亚洲成人激情综合网| 精品91自产拍在线观看一区| 91在线国产福利| 久久99久久精品| 亚洲素人一区二区| 欧美图片一区二区三区| 美女网站色91| 国产亚洲美州欧州综合国| 白白色亚洲国产精品| 日韩高清在线不卡| 综合色中文字幕| 精品国产一区二区三区av性色| 色综合久久久久综合| 九九国产精品视频| 一区二区三区久久久| 亚洲制服丝袜av| 久久久一区二区三区捆绑**| 欧洲一区在线电影| 不卡影院免费观看| 喷白浆一区二区| 亚洲影院理伦片| 中文字幕欧美一区| 欧美精品一区视频| 欧美一区二区私人影院日本| 国产一二三精品| 亚洲欧美中日韩| 91精品久久久久久蜜臀| 欧美在线影院一区二区| k8久久久一区二区三区| 国产在线日韩欧美| 美女视频免费一区| 天堂va蜜桃一区二区三区 | 26uuu国产电影一区二区| 91猫先生在线| 成人国产精品免费观看| 国内久久婷婷综合| 狠狠色伊人亚洲综合成人| 青青青爽久久午夜综合久久午夜| 亚洲理论在线观看| 亚洲精品日韩综合观看成人91| 精品入口麻豆88视频| 欧美性生活影院| 欧美在线观看18| 在线视频国产一区| 色婷婷国产精品| 在线欧美小视频| 欧美日韩在线电影| 欧美日韩dvd在线观看| 欧美三级乱人伦电影| 欧美高清精品3d| 日韩一区二区高清| 日韩三区在线观看| 精品奇米国产一区二区三区| 欧美zozozo| 精品国产精品一区二区夜夜嗨 | 免费观看日韩电影| 免费成人美女在线观看| 激情综合色播激情啊| 国产精品一二三区| 国产精品中文字幕欧美| 国产a久久麻豆| 91丨九色丨尤物| 91国在线观看| 91免费小视频| 在线亚洲免费视频| 日韩午夜精品视频| 久久综合视频网| 亚洲视频 欧洲视频| 午夜精品爽啪视频| 久久成人免费日本黄色| 国产一区二区三区在线观看精品| 国产99久久久国产精品潘金网站| 99re66热这里只有精品3直播 | 91精品免费观看| 国产日韩影视精品| 日韩国产精品久久久久久亚洲| 国产馆精品极品| 这里只有精品免费| 樱花草国产18久久久久| 国产中文字幕精品| 欧美久久一二三四区| 国产精品国产自产拍高清av王其| 日本成人中文字幕在线视频| av在线一区二区三区| 精品裸体舞一区二区三区| 亚洲国产乱码最新视频| 成人黄色av网站在线| 日韩你懂的在线播放| 亚洲国产精品一区二区久久恐怖片| 国产精品资源在线观看| 日韩欧美高清一区| 亚洲自拍另类综合| 97超碰欧美中文字幕| 中文字幕电影一区| 久久精品国产一区二区三区免费看| 日本道精品一区二区三区| 国产日韩欧美精品电影三级在线| 久久精品国产99久久6| 91.xcao| 五月天欧美精品| 在线观看91精品国产入口| 亚洲三级电影全部在线观看高清| 国产盗摄视频一区二区三区| 久久综合资源网| 国产剧情一区二区三区| 日韩欧美国产一区二区在线播放| 天堂av在线一区| 欧美一区二区三区四区高清 | 在线91免费看|