Board logo

标题: 紧急求助,搞不定SWI呀,急 [打印本页]

作者: mail_cj    时间: 2008-2-9 20:47     标题: 紧急求助,搞不定SWI呀,急

我正在修改清华的HC08的监牢程序,其它SWI中断处理程序一段搞不定呀:
原程序为:
BRK_SWI_INT:
SEI ;关中断

LDA #$0 ;禁止断点中断,清除断点中断标志
STA BRKSCR
PSHH

LDHX #DIS_INFO
TXA
STA 6,SP ;断点地址换为DIS_INFO
PSHH
PULA
STA 5,SP ;断点地址换为DIS_INFO
PULH
RTI ;退出中断,执行显示内容子程序想当于JMP指令

DIS_INFO: ;显示内容子程序,无返回
PSHA
LDA #$A8 ;发送引导符A8
JSR SEND_BYTE ;发送一字节

LDA U_RESET_H ;重新从头运行用户程序
PSHA
PULH
LDA U_RESET_L
TAX
LDA #$80 ;断点允许,等待激活
STA BRKSCR ;断点控制寄存器
CLI
JMP ,X ;执行用户程序

RTS ;此句实际执行不到

SEND_BYTE:
BRCLR 7,SCS1,*
STA SCDR
RTS
他是改变堆栈中PC对应值在RTI指令后跳到DIS_INFO:执行,我想改成:
BRK_SWI_INT:
SEI ;关中断

LDA #$0 ;禁止断点中断,清除断点中断标志
STA BRKSCR
PSHH
//把与串口的通信放到SWI服务程序中做了,可就是无法与串口通信,一点反应也没有
LDA #$A8 ;发送引导符A8
JSR SEND_BYTE ;发送一字节

//去除函数调用改成这样也不行,PC端就是收不到A8,好像没有发一样,难道SWI中断服务程序中有什么限制?当时清华的为什么不搞到SWI中断服务程序中去处理呢?
LDA #$A8 ;发送引导符A8
BRCLR 7,SCS1,*
STA SCDR


PULH
RTI ;退出中断,执行显示内容子程序想当于JMP指令

作者: mail_cj    时间: 2008-2-9 20:48

晕,输入错了,对不起,应该是:我正在修改清华的HC08的监控程序,其中SWI中断处理程序一段搞不定呀:

作者: mail_cj    时间: 2008-2-9 20:50

完整程序请参见,我也是用于GP32的:http://www.mcublog.com/blog/user1/1294/archives/2005/1356.html
作者: mail_cj    时间: 2008-2-10 21:55

那位大哥能帮忙看看呀?

作者: strongchen    时间: 2008-2-15 14:21

不清楚你的问题到底是什么。SCI端口有没有信号?SCI发送指令是否执行?
作者: mail_cj    时间: 2008-2-18 01:19

SCI通信正常,但把SCI通信部分放到SWI中断服务程序中执行就没有反应了
作者: strongchen    时间: 2008-2-18 10:37

有没有调试过,程序是怎么跑的?是在哪里死循环还是跑飞了?




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0