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

📄 flash.lis

📁 项目是为日本瑞萨工作所做的BAKE炉温控系统 整个文件夹包括设计文档
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module flash.c
                        .area text
 0000                   .dbfile flash.c
 0000                   .dbfunc e SetProtectAddress _SetProtectAddress fV
 0000           ;        address -> 2,X
 0000           _SetProtectAddress::
 0000                   .dbline -1
 0000 95                tsx
 0001                   .dbline 18
 0001           ; #include "flash.h"
 0001           ; #include "GP32C.h"
 0001           ; #include <string.h>
 0001           ; static void   Delay1(void);
 0001           ; static void   Delay2(void);
 0001           ; static void   DoEraseFlash(void);
 0001           ; static void   DoWriteFlash(void);
 0001           ; static void   EraseFlash_End(void);
 0001           ; static void   WriteFlash_End(void);
 0001           ; UINT8         PrgIOfRam[];
 0001           ; static UINT16         g_bBegin, g_bEnd;
 0001           ; static UINT8  *g_pAddress;
 0001           ; 
 0001           ; static UINT8  *g_pData;
 0001           ; static UINT8  g_nNum;
 0001           ; 
 0001           ; void  SetProtectAddress(UINT8 address)
 0001           ; {
 0001                   .dbline 19
 0001           ;       FLBPR = address;
 0001 E602              lda 2,X
 0003 C7FF7E            sta 0xff7e
 0006                   .dbline -2
 0006           L1:
 0006                   .dbline 0 ; func end
 0006 81                rts
 0007                   .dbsym l address 2 c
 0007                   .dbend
 0007                   .dbfunc e EraseFlash _EraseFlash fV
 0007           ;        address -> 2,X
 0007           _EraseFlash::
 0007                   .dbline -1
 0007 95                tsx
 0008                   .dbline 22
 0008           ; }
 0008           ; void  EraseFlash(UINT8 *address)
 0008           ; {
 0008                   .dbline 23
 0008           ;       g_pAddress = address;
 0008 E602              lda 2,X
 000A B703              sta *_g_pAddress
 000C E603              lda 3,X
 000E B704              sta *_g_pAddress+1
 0010                   .dbline 25
 0010           ; 
 0010           ;       asm("ldhx #_DoEraseFlash");
 0010 450043            ldhx #_DoEraseFlash
 0013                   .dbline 26
 0013           ;       asm("sthx _g_bBegin");
 0013 3507              sthx _g_bBegin
 0015                   .dbline 27
 0015           ;       asm("ldhx #_EraseFlash_End");
 0015 45007D            ldhx #_EraseFlash_End
 0018                   .dbline 28
 0018           ;       asm("sthx _g_bEnd");
 0018 3505              sthx _g_bEnd
 001A                   .dbline 32
 001A           ;       
 001A           ;       
 001A           ;       
 001A           ;       memcpy((void *)PrgIOfRam, (void *)g_bBegin, g_bEnd - g_bBegin);
 001A B606              lda *_g_bEnd+1
 001C B008              sub *_g_bBegin+1
 001E B700              sta *__r1
 0020 B605              lda *_g_bEnd
 0022 B207              sbc *_g_bBegin
 0024 B700              sta *__r0
 0026 B600              lda *__r1
 0028 87                psha
 0029 B600              lda *__r0
 002B 87                psha
 002C B608              lda *_g_bBegin+1
 002E 87                psha
 002F B607              lda *_g_bBegin
 0031 87                psha
 0032 A609              lda #<_PrgIOfRam
 0034 87                psha
 0035 A609              lda #>_PrgIOfRam
 0037 87                psha
 0038 CD0000            jsr _memcpy
 003B A706              ais #6
 003D 95                tsx
 003E                   .dbline 35
 003E           ;       
 003E           ; 
 003E           ;       asm("ldhx #_PrgIOfRam");
 003E 450009            ldhx #_PrgIOfRam
 0041                   .dbline 36
 0041           ;       asm("jsr ,x");
 0041 FD                jsr ,x
 0042                   .dbline -2
 0042           L2:
 0042                   .dbline 0 ; func end
 0042 81                rts
 0043                   .dbsym l address 2 pc
 0043                   .dbend
 0043                   .dbfunc s DoEraseFlash _DoEraseFlash fV
 0043           ;              i -> 0,X
 0043           _DoEraseFlash:
 0043                   .dbline -1
 0043 A7FF              ais #-1
 0045 95                tsx
 0046                   .dbline 39
 0046           ; }
 0046           ; static void   DoEraseFlash(void)
 0046           ; {
 0046                   .dbline 41
 0046           ;       UINT8 i;
 0046           ;       FLCR = 0b00000010;
 0046 A602              lda #2
 0048 C7FE08            sta 0xfe08
 004B                   .dbline 42
 004B           ;       i = FLBPR;
 004B C6FF7E            lda 0xff7e
 004E F7                sta ,X
 004F                   .dbline 43
 004F           ;       *((volatile UINT8*)g_pAddress) = 68;
 004F A644              lda #68
 0051 5503              ldhx *_g_pAddress
 0053 F7                sta ,x
 0054 95                tsx
 0055                   .dbline 44
 0055           ;       asm("bsr _Delay1");
 0055 AD17              bsr _Delay1
 0057                   .dbline 45
 0057           ;       FLCR = 0b00001010;
 0057 A60A              lda #10
 0059 C7FE08            sta 0xfe08
 005C                   .dbline 46
 005C           ;       asm("bsr _Delay1");
 005C AD10              bsr _Delay1
 005E                   .dbline 47
 005E           ;       FLCR = 0b00001000;
 005E A608              lda #8
 0060 C7FE08            sta 0xfe08
 0063                   .dbline 48
 0063           ;       asm("bsr _Delay1");
 0063 AD09              bsr _Delay1
 0065                   .dbline 49
 0065           ;       FLCR = 0b00000000;      
 0065 4F                clra
 0066 C7FE08            sta 0xfe08
 0069                   .dbline 50
 0069           ;       asm("bsr _Delay1");
 0069 AD03              bsr _Delay1
 006B                   .dbline -2
 006B           L3:
 006B A701              ais #1
 006D                   .dbline 0 ; func end
 006D 81                rts
 006E                   .dbsym l i 0 c
 006E                   .dbend
 006E                   .dbfunc s Delay1 _Delay1 fV
 006E           ;              i -> 0,X
 006E           _Delay1:
 006E                   .dbline -1
 006E A7FF              ais #-1
 0070 95                tsx
 0071                   .dbline 53
 0071           ; }
 0071           ; static void Delay1(void)
 0071           ; {
 0071                   .dbline 55
 0071 7F                clr ,X
 0072 2001              bra L8
 0074           L5:
 0074                   .dbline 55
 0074           L6:
 0074                   .dbline 55
 0074 7C                inc ,X
 0075           L8:
 0075                   .dbline 55
 0075           ;       UINT8 i;
 0075           ;       for(i = 0; i < 10; ++i);
 0075 F6                lda ,X
 0076 A10A              cmp #10
 0078 25FA              blo L5
 007A                   .dbline -2
 007A           L4:
 007A A701              ais #1
 007C                   .dbline 0 ; func end
 007C 81                rts
 007D                   .dbsym l i 0 c
 007D                   .dbend
 007D                   .dbfunc s EraseFlash_End _EraseFlash_End fV
 007D           _EraseFlash_End:
 007D                   .dbline -1
 007D                   .dbline 58
 007D           ; }
 007D           ; static void EraseFlash_End(void)
 007D           ; {
 007D                   .dbline -2
 007D           L9:
 007D                   .dbline 0 ; func end
 007D 81                rts
 007E                   .dbend
 007E                   .dbfunc e WriteFlash _WriteFlash fV
 007E           ;              n -> 6,X
 007E           ;           data -> 4,X
 007E           ;        address -> 2,X
 007E           _WriteFlash::
 007E                   .dbline -1
 007E 95                tsx
 007F                   .dbline 61
 007F           ; }
 007F           ; void  WriteFlash(UINT8 *address, UINT8 *data, int n)
 007F           ; {
 007F                   .dbline 62
 007F           ;       g_pAddress = address;
 007F E602              lda 2,X
 0081 B703              sta *_g_pAddress
 0083 E603              lda 3,X
 0085 B704              sta *_g_pAddress+1
 0087                   .dbline 63
 0087           ;       g_pData = data;
 0087 E604              lda 4,X
 0089 B701              sta *_g_pData
 008B E605              lda 5,X
 008D B702              sta *_g_pData+1
 008F                   .dbline 64
 008F           ;       g_nNum = n;
 008F E607              lda 7,X
 0091 B700              sta *_g_nNum
 0093                   .dbline 66
 0093           ; 

⌨️ 快捷键说明

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