⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 assembly.lis

📁 BootLoad_Pei&Ecirc &Ccedil ICC&micro &Auml &Ocirc &acute &acute ú&Acirc &euml &pound &not MegaLoad
💻 LIS
字号:
                                .text
                                
 0057           SPMCR = 0x57   ;RWW区忙标志,读RWW区允许,允许写程序存储区
 0000           
 0000           ; void write_page (unsigned int adr, unsigned char function);
 0000           ; bits 8:15 adr addresses the page...(must setup RAMPZ beforehand!!!)
 0000           _write_page::
 0000 1FD0          XCALL __WAIT_SPMEN__
 0002 F801          movw    r30, r16        ;move address to z pointer (R31 = ZH, R30 = ZL)
 0004 20935700      STS     SPMCR, R18      ;argument 2 decides function
 0008 E895          SPM                     ;perform pagewrite
 000A 0895          RET
 000C           
 000C           ;-----------------------------------------
 000C           
 000C           ; void fill_temp_buffer (unsigned int data, unsigned int adr);
 000C           ; bits 7:1 in adr addresses the word in the page... (2=first word, 4=second word etc..)
 000C           _fill_temp_buffer::
 000C 19D0          XCALL __WAIT_SPMEN__
 000E F901          movw    r30, r18        ;move adress to z pointer (R31=ZH R30=ZL)
 0010 0801          movw    r0, r16         ;move data to reg 0 and 1
 0012 31E0          LDI     R19, 0x01
 0014 30935700      STS     SPMCR, R19
 0018 E895          SPM                     ;Store program memory
 001A 0895          RET      
 001C                   
 001C           ;-----------------------------------------      
 001C           
 001C           ;unsigned char read_flash(unsigned int add);
 001C           _read_flash::
 001C F12F          mov r31,r17
 001E E02F          mov r30,r16
 0020 0491          lpm r16,z
 0022 1127          clr r17
 0024 0895          ret 
 0026                           
 0026           ;unsigned int read_program_memory (unsigned int adr ,unsigned char cmd);
 0026           _read_program_memory::
 0026 F801          movw    r30, r16        ;move adress to z pointer
 0028 20FD          SBRC    R18, 0          ;read lockbits? (second argument = 0x09)
 002A 20935700      STS     SPMCR, R18      ;if so, place second argument in SPMEN register
 002E 0591          LPM     r16, Z+
 0030 1491          LPM     r17, Z
 0032 0895          RET
 0034                   
 0034           ;-----------------------------------------
 0034                   
 0034           _enableRWW::
 0034 05D0              XCALL __WAIT_SPMEN__
 0036 B1E1          LDI R27,0x11
 0038 B0935700      STS SPMCR,R27
 003C E895          SPM
 003E 0895          RET   
 0040                   
 0040           ;-----------------------------------------           
 0040           
 0040           __WAIT_SPMEN__:
 0040 B0915700      LDS     R27,SPMCR       ; load SPMCR to R27
 0044 B0FD          SBRC    R27,0           ; check SPMEN flag
 0046 FCCF          RJMP    __WAIT_SPMEN__  ; wait for SPMEN flag cleared        
 0048 0895          RET
 004A                   
 004A           ;-----------------------------------------
 004A           
 004A           

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -