📄 main.lis
字号:
.module main.c
.area text
0000 .dbfile F:\01科研~1\编著2005\HC08嵌~1\GP32程序\HC08EX~2\C\C06_FL~1\main.c
0000 .dbfunc e main _main fV
0000 ; i -> 0,X
0000 ; p -> 1,X
0000 _main::
0000 .dbline -1
0000 A7FD ais #-3
0002 95 tsx
0003 .dbline 31
0003 ; /*-----------------------------------------------------*
0003 ; *工 程 名:Flash.prj *
0003 ; *硬件连接:无 *
0003 ; *功 能: *
0003 ; * 1.等待接收N+1个数,并放入N和data数组中 *
0003 ; * 2.擦除以addr为首地址的Flash一页,将N个数据写入 *
0003 ; * 3.从以addr为首址的Flash区读取N个数据,串口发送 *
0003 ; *说 明: *
0003 ; * 1.与Visual Basic 6.0 程序Flash_Test.vbp联合运行 *
0003 ; * 2.擦/写函数中用来暂存写入或擦除程序的首末地址的 *
0003 ; * 变量pbase,pend;用来暂存待写入或擦除的Flash首 *
0003 ; * 地址faddr;用来存放写入的数据个数N和写入的数据 *
0003 ; * data[]必须在main函数中定义,否则将出错 *
0003 ; * 3.调用擦/写子程序之前先将待擦/写页后一页开始的 *
0003 ; * 所有区域写保护 *
0003 ; *------------------------------------------------------*
0003 ; /*[头文件]*/
0003 ; #include "SCI.h" //串行通信子程序头文件
0003 ; #include "GP32C.h" //包含头文件
0003 ; //函数声明
0003 ; extern void SCIInit(void); //串行口初始化子程序
0003 ; extern void EarseFlash(unsigned int addr);
0003 ; extern void WriteFlash(unsigned int addr);
0003 ; //内存变量声明
0003 ; unsigned char N,data[64]; //N:写入FLASH的数据个数
0003 ; //data:将写入flash的数据
0003 ; unsigned int pbase,pend,faddr;
0003 ; //存放将写入或擦除的首地址
0003 ; //主程序
0003 ; void main()
0003 ; {
0003 .dbline 34
0003 ; unsigned char i;
0003 ; unsigned char *p;
0003 ; SCIInit(); //调串行口初始化子程序
0003 CD0000 jsr _SCIInit
0006 95 tsx
0007 206D bra L3
0009 L2:
0009 .dbline 37
0009 ; //主循环开始
0009 ; while(1)
0009 ; {
0009 .dbline 38
0009 ; SCISend1(86); //发送握手信号86
0009 A656 lda #86
000B 87 psha
000C CD0000 jsr _SCISend1
000F A701 ais #1
0011 95 tsx
0012 .dbline 40
0012 ; //等待接收一个字节的握手信号
0012 ; if(SCIRe1(p)!=56) //是否是56?
0012 E602 lda 2,X
0014 87 psha
0015 E601 lda 1,X
0017 87 psha
0018 CD0000 jsr _SCIRe1
001B A702 ais #2
001D 95 tsx
001E B700 sta *__r1
0020 A138 cmp #56
0022 2702 beq L5
0024 .dbline 41
0024 ; continue; //否,继续握手
0024 2050 bra L3
0026 L5:
0026 .dbline 43
0026 A606 lda #<_data
0028 87 psha
0029 A606 lda #>_data
002B 87 psha
002C A601 lda #1
002E 87 psha
002F CD0000 jsr _SCIReN
0032 A703 ais #3
0034 .dbline 44
0034 C60006 lda _data
0037 C70046 sta _N
003A .dbline 46
003A A606 lda #<_data
003C 87 psha
003D A606 lda #>_data
003F 87 psha
0040 C60046 lda _N
0043 87 psha
0044 CD0000 jsr _SCIReN
0047 A703 ais #3
0049 .dbline 49
0049 A602 lda #2
004B C7FF7E sta 0xff7e
004E .dbline 50
004E 458000 ldhx #-32768
0051 89 pshx
0052 8B pshh
0053 CD0000 jsr _EarseFlash
0056 A702 ais #2
0058 .dbline 53
0058 A602 lda #2
005A C7FF7E sta 0xff7e
005D .dbline 54
005D 458000 ldhx #-32768
0060 89 pshx
0061 8B pshh
0062 CD0000 jsr _WriteFlash
0065 A702 ais #2
0067 .dbline 56
0067 458000 ldhx #-32768
006A 89 pshx
006B 8B pshh
006C C60046 lda _N
006F 87 psha
0070 CD0000 jsr _SCISendN
0073 A703 ais #3
0075 95 tsx
0076 .dbline 57
0076 L3:
0076 .dbline 36
0076 2091 bra L2
0078 X0:
0078 .dbline -2
0078 L1:
0078 A703 ais #3
007A .dbline 0 ; func end
007A 81 rts
007B .dbsym l i 0 c
007B .dbsym l p 1 pc
007B .dbend
.area bss
0000 .dbfile F:\01科研~1\编著2005\HC08嵌~1\GP32程序\HC08EX~2\C\C06_FL~1\main.c
0000 _faddr::
0000 .blkb 2
0002 .dbsym e faddr _faddr i
0002 _pend::
0002 .blkb 2
0004 .dbsym e pend _pend i
0004 _pbase::
0004 .blkb 2
0006 .dbsym e pbase _pbase i
0006 _data::
0006 .blkb 64
0046 .dbsym e data _data A[64:64]c
0046 _N::
0046 .blkb 1
0047 .dbsym e N _N c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -