亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
欧美性猛交一区二区三区精品| 国产高清亚洲一区| 亚洲成人tv网| 国产毛片精品国产一区二区三区| 99精品视频中文字幕| 日韩欧美不卡在线观看视频| 中文字幕字幕中文在线中不卡视频| 婷婷久久综合九色综合绿巨人| 国产福利电影一区二区三区| 欧美一区二区成人6969| 有坂深雪av一区二区精品| 国产精品一区二区久久不卡| 欧美日韩黄色影视| 亚洲一区二区三区四区中文字幕| eeuss鲁片一区二区三区在线看| 日韩一区国产二区欧美三区| 亚洲精品老司机| 成人avav影音| 国产欧美精品日韩区二区麻豆天美| 奇米一区二区三区| 欧美日本一区二区在线观看| 亚洲欧美日韩国产一区二区三区| 国产精品一区久久久久| 欧美成人一区二区三区| 日本人妖一区二区| 91精品国产综合久久精品| 亚洲成人午夜电影| 337p亚洲精品色噜噜狠狠| 亚洲第四色夜色| 欧美日韩免费视频| 视频精品一区二区| 欧美日韩一级二级| 爽爽淫人综合网网站| 欧美日韩在线播| 日韩中文字幕一区二区三区| 欧美精品日日鲁夜夜添| 天天综合日日夜夜精品| 91精品国产福利在线观看| 青青国产91久久久久久| 日韩三级精品电影久久久| 久久国产精品区| 国产无遮挡一区二区三区毛片日本| 激情成人综合网| 国产亲近乱来精品视频| 丁香另类激情小说| 亚洲精品成人悠悠色影视| 欧美成人精品1314www| 日韩成人午夜电影| 欧美成人video| 成人美女在线观看| 一区二区三区在线视频免费| 欧美亚洲综合在线| 麻豆精品在线观看| 中文字幕精品在线不卡| 在线日韩一区二区| 免费高清视频精品| 国产香蕉久久精品综合网| 99免费精品在线| 亚洲成人综合在线| 久久久美女毛片| 色视频一区二区| 美腿丝袜在线亚洲一区| 国产欧美日韩另类一区| 在线影院国内精品| 久久99久久久久| 国产精品色呦呦| 欧美日韩高清在线| 成人综合激情网| 五月综合激情网| 欧美国产综合一区二区| 欧美做爰猛烈大尺度电影无法无天| 日本aⅴ精品一区二区三区 | 久久久午夜电影| 国产精品久久久久久久久果冻传媒 | 国产人成亚洲第一网站在线播放| 国产欧美日韩激情| 日韩高清中文字幕一区| 色婷婷一区二区三区四区| 中文字幕免费观看一区| 亚洲精品视频免费观看| 国产成人一区在线| 欧美成人官网二区| 久久99久久久欧美国产| 日韩一区二区三区三四区视频在线观看| 麻豆精品在线看| 精品久久久久久亚洲综合网| 日韩视频免费观看高清在线视频| 久久久久久久综合狠狠综合| 日韩av中文字幕一区二区| 91美女在线视频| 国产真实乱子伦精品视频| 国产成人综合在线| 亚洲午夜免费视频| 精品视频一区 二区 三区| 国产91精品一区二区麻豆网站| 日韩精品1区2区3区| 亚洲与欧洲av电影| 亚洲男人天堂av网| 国产精品理伦片| 久久精品一二三| 久久久久久久久久看片| 日韩欧美国产成人一区二区| 欧美久久婷婷综合色| 亚洲综合一二三区| 欧美mv日韩mv亚洲| 成人综合婷婷国产精品久久| 亚洲第一搞黄网站| 久久久久免费观看| 欧美日韩美女一区二区| 一区二区三区欧美| 2021中文字幕一区亚洲| 欧美精品久久天天躁| 日本一区中文字幕| 亚洲图片欧美激情| 久久夜色精品国产欧美乱极品| 99精品视频在线免费观看| 视频一区二区中文字幕| 2023国产精品| 国产欧美精品区一区二区三区| 色88888久久久久久影院按摩| 国产精品99久| 国产精品一区久久久久| 国产一区欧美日韩| 成人综合婷婷国产精品久久| 国产白丝精品91爽爽久久| 高清免费成人av| 成人av影视在线观看| 成年人网站91| 色欧美日韩亚洲| 欧美日韩一区视频| 日韩手机在线导航| 久久影视一区二区| 中文字幕一区视频| 亚洲第一会所有码转帖| 国产日韩av一区二区| 欧美日韩大陆一区二区| 午夜伊人狠狠久久| 久久er精品视频| 日韩二区三区在线观看| 亚洲夂夂婷婷色拍ww47| 国内精品在线播放| 欧美激情一区二区| 欧美精品乱码久久久久久按摩| 日韩欧美中文字幕一区| 欧美一级二级在线观看| 久久久国产午夜精品| 亚洲欧美激情视频在线观看一区二区三区 | 91亚洲国产成人精品一区二区三 | 亚洲色图制服诱惑| 亚洲日本丝袜连裤袜办公室| 亚洲黄色在线视频| 日本美女一区二区三区| 国产.欧美.日韩| 欧美精品xxxxbbbb| 中文欧美字幕免费| 午夜精品在线看| 成人动漫中文字幕| 91精品国产综合久久久蜜臀粉嫩| 久久综合中文字幕| 亚洲a一区二区| 丁香六月久久综合狠狠色| 欧美日韩国产综合久久 | 97久久久精品综合88久久| 欧美精品久久99| 中文字幕亚洲在| 久久激情综合网| 色婷婷香蕉在线一区二区| 精品福利视频一区二区三区| 亚洲精品高清在线观看| 国产成人8x视频一区二区| 制服丝袜亚洲网站| 亚洲免费毛片网站| 懂色中文一区二区在线播放| 欧美精品丝袜中出| 一区二区三区日韩欧美精品| 国产一区二区三区综合| 欧美一区二区三区男人的天堂 | 秋霞电影一区二区| 色av一区二区| 91视频xxxx| 久久久www成人免费无遮挡大片| 亚洲一区二区在线免费看| 成人美女在线视频| 久久久国产综合精品女国产盗摄| 男人的天堂久久精品| 精品污污网站免费看| 亚洲欧美日韩系列| 色综合久久久久综合体桃花网| 久久色中文字幕| 看片的网站亚洲| 日韩精品在线看片z| 日韩在线一区二区三区| 欧美亚洲动漫精品| 亚洲午夜激情av| 欧美日韩在线播放一区| 亚洲国产精品久久人人爱| 在线影院国内精品| 天天影视涩香欲综合网| 91精品国产一区二区三区| 丝袜亚洲精品中文字幕一区|