📄 39vf400.asm
字号:
PSHD *
RET
.endfunc 336,000000000H,6
.sym _readOneCfg,_readOneCfg,32,2,0
.globl _readOneCfg
.func 364
;>>>> void readOneCfg(uint loc)
******************************************************
* FUNCTION DEF : _readOneCfg
******************************************************
_readOneCfg:
LF6 .set 0
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,4
LAR AR0,*0+,AR2
.sym _loc,-3+LF6,14,9,16
.sym _temp,1,30,1,16
.sym _i,2,14,1,16
.sym _addr,3,14,1,16
.line 2
;>>>> uint *temp;
;>>>> uint i;
.line 5
;>>>> uint addr = 0x8000;
LARK AR2,3
MAR *0+
SPLK #32768,*-
.line 6
;>>>> cs_flash_0;
LACK 64511
LDPK _MCRC
AND _MCRC
SACL _MCRC
LACK 1024
LDPK _PFDATDIR
OR _PFDATDIR
SACL _PFDATDIR
LACK 65531
AND _PFDATDIR
SACL _PFDATDIR
.line 7
;>>>> for(i=0;i<8;i++)
LACK 0
SACL *
ZALS *
SUBK 8
BGEZ L10
SBRK 5-LF6
RSXM ;;;
L9:
.line 9
;>>>> temp = (uint *)(addr+loc*8+i);
LAC * ,3
ADRK 6-LF6
ADD *-
ADD *-
SACL *
.line 10
;>>>> cfgdata[loc*8+i] = *temp;
LAR AR3,*
SBRK 4-LF6
LAC * ,3
ADLK _cfgdata+0,0
ADRK 5-LF6
ADD * ,AR0
SACL *
LAR AR4,* ,AR3
LAC * ,AR4
SACL * ,AR2
.line 7
LAC *
ADDK 1
SACL *
ZALS *
SUBK 8
SBRK 5-LF6
BLZ L9
L10:
.line 12
;>>>> cs_flash_1;
LACK 64511
LDPK _MCRC
AND _MCRC
SACL _MCRC
LACK 1028
LDPK _PFDATDIR
OR _PFDATDIR
SACL _PFDATDIR
EPI0_6:
.line 13
MAR * ,AR1
SBRK 5
LAR AR0,*-
PSHD *
RET
.endfunc 376,000000000H,4
.sym _writeOneDefaultCfg,_writeOneDefaultCfg,46,2,0
.globl _writeOneDefaultCfg
.func 379
;>>>> uint writeOneDefaultCfg(uint loc)
******************************************************
* FUNCTION DEF : _writeOneDefaultCfg
******************************************************
_writeOneDefaultCfg:
LF7 .set 0
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,5
LAR AR0,*0+,AR2
.sym _loc,-3+LF7,14,9,16
.sym _temp,1,30,1,16
.sym _i,2,14,1,16
.sym _flag,3,14,1,16
.sym _addr,4,14,1,16
.line 2
;>>>> uint *temp;
;>>>> uint i;
;>>>> uint flag;
.line 6
;>>>> uint addr = 0x8000;
LARK AR2,4
MAR *0+
SPLK #32768,*
.line 8
;>>>> cs_flash_0;
LACK 64511
LDPK _MCRC
AND _MCRC
SACL _MCRC
LACK 1024
LDPK _PFDATDIR
OR _PFDATDIR
SACL _PFDATDIR
LACK 65531
AND _PFDATDIR
SACL _PFDATDIR
.line 9
;>>>> for(i=0;i<112;i++)
LACK 0
SBRK 2
SACL *
ZALS *
SUBK 112
BGEZ L12
L11:
.line 11
;>>>> cfgdata[i] = *( (uint *)(0x8000+i) );
;>>>> } //将flash中数据cfg0~cfg13全部读出
LAC * ,AR0
ADLK 1,15
SACL *
LAR AR3,* ,AR2
LAC * ,AR0
ADLK _cfgdata+0,0
SACL *
LAR AR4,* ,AR3
LAC * ,AR4
SACL * ,AR2
.line 9
LAC *
ADDK 1
SACL *
ZALS *
SUBK 112
BLZ L11
L12:
.line 13
;>>>> cs_flash_1;
LACK 64511
LDPK _MCRC
AND _MCRC
SACL _MCRC
LACK 1028
LDPK _PFDATDIR
OR _PFDATDIR
SACL _PFDATDIR
.line 15
;>>>> if(loc == 1) para1def();
SBRK 5-LF7
LAC *
SUBK 1
BNZ L13
CALL _para1def,AR1
B L14
L13:
.line 16
;>>>> else if(loc == 2) para2def();
LAC *
SUBK 2
BNZ L15
CALL _para2def,AR1
B L14
L15:
.line 17
;>>>> else if(loc == 3) para3def();
LAC *
SUBK 3
BNZ L16
CALL _para3def,AR1
B L14
L16:
.line 18
;>>>> else if(loc == 5) para5def();
LAC *
SUBK 5
BNZ L17
CALL _para5def,AR1
B L14
L17:
.line 19
;>>>> else if(loc == 8) para8def();
LAC *
SUBK 8
BNZ L18
CALL _para8def,AR1
B L14
L18:
.line 20
;>>>> else if(loc == 10) para10def();
LAC *
SUBK 10
BNZ L19
CALL _para10def,AR1
B L14
L19:
.line 21
;>>>> else if(loc == 11) para11def();
LAC *
SUBK 11
BNZ L20
CALL _para11def,AR1
B L14
L20:
.line 22
;>>>> else if(loc == 12) para12def();
LAC *
SUBK 12
BNZ L21
CALL _para12def,AR1
B L14
L21:
.line 23
;>>>> else if(loc == 13) para13def(); //将要缺省配置的数据写进缓存
LAC *
SUBK 13
BNZ L14
CALL _para13def,AR1
L14:
.line 25
;>>>> flag = Erase_One_Sector((uint*)0x8000);
MAR * ,AR1
LALK 1,15
SACL *+
CALL _Erase_One_Sector
MAR *-,AR2
LARK AR2,3
MAR *0+
SACL *
.line 26
;>>>> if(flag == 0) return flag; //擦除一块2k字
LAC *
BNZ L23
ZALS *
B EPI0_7
L23:
.line 28
;>>>> addr = 0x8000;
MAR *+
SPLK #32768,*
.line 29
;>>>> for(i=0;i<112;i++)
LACK 0
SBRK 2
SACL *
ZALS *
SUBK 112
BGEZ L25
ADRK 2
L24:
.line 31
;>>>> flag = Program_One_Word (cfgdata[i], (uint *)addr);
LAC * ,AR1
SACL *+,AR2
SBRK 2
LAC * ,AR0
ADLK _cfgdata+0,0
SACL *
LAR AR3,* ,AR3
LAC * ,AR1
SACL *+
CALL _Program_One_Word
SBRK 2
MAR * ,AR2
LARK AR2,3
MAR *0+
SACL *
.line 32
;>>>> if(flag == 0) return flag;
LAC *
BNZ L26
ZALS *
B EPI0_7
L26:
.line 33
;>>>> addr++;
;>>>> } //对224字节编程
MAR *+
LAC *
ADDK 1
SACL *
.line 29
SBRK 2
LAC *
ADDK 1
SACL *
ZALS *
SUBK 112
ADRK 2
BLZ L24
L25:
.line 35
;>>>> return 1;
LACK 1
EPI0_7:
.line 36
MAR * ,AR1
SBRK 6
LAR AR0,*-
PSHD *
RET
.endfunc 414,000000000H,5
.sym _writeOneCfg,_writeOneCfg,46,2,0
.globl _writeOneCfg
.func 418
;>>>> uint writeOneCfg(uint loc)
******************************************************
* FUNCTION DEF : _writeOneCfg
******************************************************
_writeOneCfg:
LF8 .set 0
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,5
LAR AR0,*0+,AR2
.sym _loc,-3+LF8,14,9,16
.sym _temp,1,30,1,16
.sym _i,2,14,1,16
.sym _flag,3,14,1,16
.sym _addr,4,14,1,16
.line 2
;>>>> uint *temp;
;>>>> uint i;
;>>>> uint flag;
.line 6
;>>>> uint addr = 0x8000;
LARK AR2,4
MAR *0+
SPLK #32768,*
.line 8
;>>>> cs_flash_0;
LACK 64511
LDPK _MCRC
AND _MCRC
SACL _MCRC
LACK 1024
LDPK _PFDATDIR
OR _PFDATDIR
SACL _PFDATDIR
LACK 65531
AND _PFDATDIR
SACL _PFDATDIR
.line 9
;>>>> for(i=0;i<112;i++)
LACK 0
SBRK 2
SACL *
ZALS *
SUBK 112
BGEZ L28
L27:
.line 11
;>>>> cfgdata[i] = *( (uint *)(0x8000+i) );
;>>>> } //将flash中数据cfg0~cfg13全部读出
LAC * ,AR0
ADLK 1,15
SACL *
LAR AR3,* ,AR2
LAC * ,AR0
ADLK _cfgdata+0,0
SACL *
LAR AR4,* ,AR3
LAC * ,AR4
SACL * ,AR2
.line 9
LAC *
ADDK 1
SACL *
ZALS *
SUBK 112
BLZ L27
L28:
.line 13
;>>>> cs_flash_1;
LACK 64511
LDPK _MCRC
AND _MCRC
SACL _MCRC
LACK 1028
LDPK _PFDATDIR
OR _PFDATDIR
SACL _PFDATDIR
.line 15
;>>>> for(i=0;i<7;i++)cfgdata[loc*8+i] = 0;//先将要配置的数据清0
LACK 0
SACL *
ZALS *
SUBK 7
BGEZ L30
SBRK 5-LF8
RSXM ;;;
L29:
LAC * ,3
ADLK _cfgdata+0,0
ADRK 5-LF8
ADD * ,AR0
SACL *
LAR AR3,* ,AR3
LACK 0
SACL * ,AR2
LAC *
ADDK 1
SACL *
ZALS *
SUBK 7
SBRK 5-LF8
BLZ L29
L30:
.line 16
;>>>> for(i=0;i<14;i++)
LACK 0
LARK AR2,2
MAR *0+
SACL *
ZALS *
SUBK 14
BGEZ L32
L31:
.line 18
;>>>> if(i%2==0)cfgdata[loc*8+i/2] |= pcdata[4+i]<<8;
BIT * ,15
BBNZ L33
LAC * ,AR0
ADLK _pcdata+4,0
SACL *
LAR AR3,* ,AR3
LAC * ,8,AR1
SACL *+,AR2
RSXM
LAC * ,14,AR1
SACH *+,1,AR2
SBRK 5-LF8
LAC * ,3,AR1
ADLK _cfgdata+0,0
MAR *-
ADD *-,AR0
SACL *
LAR AR3,* ,AR1
LAC * ,AR3
OR *
SACL *
B L34
L33:
.line 19
;>>>> else cfgdata[loc*8+i/2] |= pcdata[4+i];
;>>>> } //将要改写的数据写入cfgdata
LAC * ,AR0
ADLK _pcdata+4,0
SACL *
LAR AR3,* ,AR2
RSXM
LAC * ,14,AR1
SACH *+,1,AR2
SBRK 5-LF8
LAC * ,3,AR1
ADLK _cfgdata+0,0
MAR *-
ADD * ,AR0
SACL *
LAR AR4,* ,AR3
LAC * ,AR4
OR *
SACL *
L34:
.line 16
MAR * ,AR2
ADRK 5-LF8
LAC *
ADDK 1
SACL *
ZALS *
SUBK 14
BLZ L31
L32:
.line 21
;>>>> flag = Erase_One_Sector((uint*)0x8000);
MAR * ,AR1
LALK 1,15
SACL *+
CALL _Erase_One_Sector
MAR *-,AR2
LARK AR2,3
MAR *0+
SACL *
.line 22
;>>>> if(flag == 0) return flag; //擦除一块2k字
LAC *
BNZ L35
ZALS *
B EPI0_8
L35:
.line 24
;>>>> addr = 0x8000;
MAR *+
SPLK #32768,*
.line 25
;>>>> for(i=0;i<112;i++)
LACK 0
SBRK 2
SACL *
ZALS *
SUBK 112
BGEZ L37
ADRK 2
L36:
.line 27
;>>>> flag = Program_One_Word (cfgdata[i], (uint *)addr);
LAC * ,AR1
SACL *+,AR2
SBRK 2
LAC * ,AR0
ADLK _cfgdata+0,0
SACL *
LAR AR3,* ,AR3
LAC * ,AR1
SACL *+
CALL _Program_One_Word
SBRK 2
MAR * ,AR2
LARK AR2,3
MAR *0+
SACL *
.line 28
;>>>> if(flag == 0) return flag;
LAC *
BNZ L38
ZALS *
B EPI0_8
L38:
.line 29
;>>>> addr++;
;>>>> } //对224字节编程
MAR *+
LAC *
ADDK 1
SACL *
.line 25
SBRK 2
LAC *
ADDK 1
SACL *
ZALS *
SUBK 112
ADRK 2
BLZ L36
L37:
.line 31
;>>>> return 1;
LACK 1
EPI0_8:
.line 32
MAR * ,AR1
SBRK 6
LAR AR0,*-
PSHD *
RET
.endfunc 449,000000000H,5
.sym _writeAllCfg,_writeAllCfg,46,2,0
.globl _writeAllCfg
.func 451
;>>>> uint writeAllCfg( )
;>>>> uint i;
;>>>> uint flag;
******************************************************
* FUNCTION DEF : _writeAllCfg
******************************************************
_writeAllCfg:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,4
LAR AR0,*0+,AR2
.sym _i,1,14,1,16
.sym _flag,2,14,1,16
.sym _addr,3,14,1,16
.line 5
;>>>> uint addr = 0x8000;
LARK AR2,3
MAR *0+
SPLK #32768,* ,AR1
.line 7
;>>>> flag = Erase_One_Sector((uint*)0x8000);
LALK 1,15
SACL *+
CALL _Erase_One_Sector
MAR *-,AR2
LARK AR2,2
MAR *0+
SACL *
.line 8
;>>>> if(flag == 0) return flag; //擦除一块2k字
LAC *
BNZ L39
ZALS *
B EPI0_9
L39:
.line 10
;>>>> addr = 0x8000;
MAR *+
SPLK #32768,*
.line 11
;>>>> for(i=0;i<112;i++)
LACK 0
SBRK 2
SACL *
ZALS *
SUBK 112
BGEZ L41
ADRK 2
L40:
.line 13
;>>>> flag = Program_One_Word (cfgdata[i], (uint *)addr);
LAC * ,AR1
SACL *+,AR2
SBRK 2
LAC * ,AR0
ADLK _cfgdata+0,0
SACL *
LAR AR3,* ,AR3
LAC * ,AR1
SACL *+
CALL _Program_One_Word
SBRK 2
MAR * ,AR2
LARK AR2,2
MAR *0+
SACL *
.line 14
;>>>> if(flag == 0) return flag;
LAC *
BNZ L42
ZALS *
B EPI0_9
L42:
.line 15
;>>>> addr++;
;>>>> } //对224字节编程
MAR *+
LAC *
ADDK 1
SACL *
.line 11
SBRK 2
LAC *
ADDK 1
SACL *
ZALS *
SUBK 112
ADRK 2
BLZ L40
L41:
.line 17
;>>>> return 1;
LACK 1
EPI0_9:
.line 18
MAR * ,AR1
SBRK 5
LAR AR0,*-
PSHD *
RET
.endfunc 468,000000000H,4
.sym _readAllCfg,_readAllCfg,32,2,0
.globl _readAllCfg
.func 469
;>>>> void readAllCfg(void)
;>>>> uint i;
******************************************************
* FUNCTION DEF : _readAllCfg
******************************************************
_readAllCfg:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,2
LAR AR0,*0+,AR2
.sym _i,1,14,1,16
.line 4
;>>>> cs_flash_0;
LACK 64511
LDPK _MCRC
AND _MCRC
SACL _MCRC
LACK 1024
LDPK _PFDATDIR
OR _PFDATDIR
SACL _PFDATDIR
LACK 65531
AND _PFDATDIR
SACL _PFDATDIR
.line 5
;>>>> for(i=0;i<112;i++)
LACK 0
LARK AR2,1
MAR *0+
SACL *
ZALS *
SUBK 112
BGEZ L44
L43:
.line 7
;>>>> cfgdata[i] = *( (uint*)(0x8000+i) );
LAC * ,AR0
ADLK 1,15
SACL *
LAR AR3,* ,AR2
LAC * ,AR0
ADLK _cfgdata+0,0
SACL *
LAR AR4,* ,AR3
LAC * ,AR4
SACL * ,AR2
.line 5
LAC *
ADDK 1
SACL *
ZALS *
SUBK 112
BLZ L43
L44:
.line 9
;>>>> cs_flash_1;
LACK 64511
LDPK _MCRC
AND _MCRC
SACL _MCRC
LACK 1028
LDPK _PFDATDIR
OR _PFDATDIR
SACL _PFDATDIR
EPI0_10:
.line 10
MAR * ,AR1
SBRK 3
LAR AR0,*-
PSHD *
RET
.endfunc 478,000000000H,2
*****************************************************
* UNDEFINED REFERENCES *
*****************************************************
.global _para1def
.global _para2def
.global _para3def
.global _para5def
.global _para8def
.global _para10def
.global _para11def
.global _para12def
.global _para13def
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -