使用免-费工具仿真调试,cpu是jk8,发现运行10几分钟后,cpu的io口不动了
- UID
- 108380
- 性别
- 男
|
使用免-费工具仿真调试,cpu是jk8,发现运行10几分钟后,cpu的io口不动了
于是停下来看,发现程序竟然停在start08.c的第一句上了,于是查看PSR寄存器,发现是非法地址复位,这是何解?程序中可没有写非法的地址,难道是编译的问题? |
能不用日货,尽量不用日货!
能不用日货,尽量不用日货!
能不用日货,尽量不用日货! |
|
|
|
|
|
- UID
- 111532
- 性别
- 男
|
请看看你定义的全局变量是不是有问题?有没有嵌入的汇编中定义变量名后加了冒号? |
|
|
|
|
|
- UID
- 108380
- 性别
- 男
|
冒号没有的,只有分号,全局变量倒是定义了很多,请问你这样问是有什么讲究吗?加冒号是表示什么意思呢 |
能不用日货,尽量不用日货!
能不用日货,尽量不用日货!
能不用日货,尽量不用日货! |
|
|
|
|
|
- UID
- 111532
- 性别
- 男
|
我想你用的调试工具是M68UICS08吧,JK8有256个RAM,除去堆栈,在线调试用去的RAM,RAM并不是很多.没看过你的程序不敢定论,能运行10多分钟来看,或许你的堆栈深度不够或者由变量在存储空间分配上引起的问题.
我曾经也出现类似的问题,不过是汇编里.我在定义"Var: DS.B 1"时,一"CLR Var"就出现非法地址复位.改成"Var DS.B 1"就好了,我也不知为何? |
|
|
|
|
|
- UID
- 108380
- 性别
- 男
|
呵呵!谢谢feigec,问题找到拉,不是堆栈的问题,我的程序里有lin通讯,有个通讯指针没有做保护(程序设计问题),溢出了,指向了60以下的地址,所以出现了非法地址复位 |
能不用日货,尽量不用日货!
能不用日货,尽量不用日货!
能不用日货,尽量不用日货! |
|
|
|
|
|