📄 main.s
字号:
.module main.c
.area text
.dbfile main.c
.dbfunc e main _main fV
; i -> 0,X
; p -> 1,X
_main::
.dbline -1
ais #-3
tsx
.dbline 30
; /*-----------------------------------------------------*
; *工 程 名:Flash.prj *
; *硬件连接:无 *
; *功 能: *
; * 1.等待接收N+1个数,并放入N和data数组中 *
; * 2.擦除以addr为首地址的Flash一页,将N个数据写入 *
; * 3.从以addr为首址的Flash区读取N个数据,串口发送 *
; *说 明: *
; * 1.与Visual Basic 6.0 程序Flash_Test.vbp联合运行 *
; * 2.擦/写函数中用来暂存写入或擦除程序的首末地址的 *
; * 变量pbase,pend;用来暂存待写入或擦除的Flash首 *
; * 地址faddr;用来存放写入的数据个数N和写入的数据 *
; * data[]必须在main函数中定义,否则将出错 *
; * 3.调用擦/写子程序之前先将待擦/写页后一页开始的 *
; * 所有区域写保护 *
; *------------------------------------------------------*
; /*[头文件]*/
; #include "SCI.h" //串行通信子程序头文件
; #include "GP32C.h" //包含头文件
; #include "flash.h" //包含头文件
; #include "SCIInit.h" //包含头文件
; //UINT16 g_bBegin, g_bEnd, g_pAddress;
; //函数声明
;
; //内存变量声明
; unsigned char N,data[64]; //N:写入FLASH的数据个数
; //data:将写入flash的数据
; //主程序
; void main()
; {
.dbline 33
; unsigned char i;
; unsigned char *p;
; SCIInit(); //调串行口初始化子程序
jsr _SCIInit
tsx
bra L3
L2:
.dbline 36
; //主循环开始
; while(1)
; {
.dbline 37
; SCISend1(86); //发送握手信号86
lda #86
psha
jsr _SCISend1
ais #1
tsx
.dbline 39
; //等待接收一个字节的握手信号
; if(SCIRe1(p)!=56) //是否是56?
lda 2,X
psha
lda 1,X
psha
jsr _SCIRe1
ais #2
tsx
sta *__r1
cmp #56
beq L5
.dbline 40
; continue; //否,继续握手
bra L3
L5:
.dbline 42
ldhx #_data
pshx
pshh
lda #1
psha
jsr _SCIReN
ais #3
.dbline 43
mov *_data,*_N
.dbline 45
ldhx #_data
pshx
pshh
lda *_N
psha
jsr _SCIReN
ais #3
.dbline 48
lda #2
sta 0xff7e
.dbline 49
ldhx #-32768
pshx
pshh
jsr _EraseFlash
ais #2
.dbline 52
lda #2
sta 0xff7e
.dbline 53
clr *__r0
lda *_N
psha
lda *__r0
psha
ldhx #_data
pshx
pshh
ldhx #-32768
pshx
pshh
jsr _WriteFlash
ais #6
.dbline 55
ldhx #-32768
pshx
pshh
lda *_N
psha
jsr _SCISendN
ais #3
tsx
.dbline 56
L3:
.dbline 35
bra L2
X0:
.dbline -2
L1:
ais #3
.dbline 0 ; func end
rts
.dbsym l i 0 c
.dbsym l p 1 pc
.dbend
.area bss
.dbfile main.c
_data::
.blkb 64
.dbsym e data _data A[64:64]c
_N::
.blkb 1
.dbsym e N _N c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -