打印

求教高手:乾坤大挪移。。。。。。

[复制链接]
4016|24
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
XIANSir|  楼主 | 2011-7-19 11:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
delin17| | 2011-7-19 12:28 | 只看该作者

2

我以前在6052内核上做过类似的事情,退出中断先执行一个函数,再返回中断点。
如果你对你用的单片机了解,可以在退出中断前找到堆栈中保存函数对应的位置,然后再将main的地址替换掉中断点的地址。返回就是跳到main了。
你这个个问题还可以直接用软件重启实现。

使用特权

评论回复
板凳
wqch0112| | 2011-7-19 12:30 | 只看该作者
直接用软件实现重启就OK了.....

使用特权

评论回复
地板
ayb_ice| | 2011-7-19 13:09 | 只看该作者
这样会杯具的

使用特权

评论回复
5
XIANSir|  楼主 | 2011-7-19 14:11 | 只看该作者
我现在死的心都有了,这是什么**问题啊啊。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

使用特权

评论回复
6
ayb_ice| | 2011-7-19 14:17 | 只看该作者
中断必须用RETI返回,否则会影响中断,你那样做的话基本死悄悄

使用特权

评论回复
7
huangqi412| | 2011-7-19 14:33 | 只看该作者
晕倒。。。跨函数GOTO干啥。。。  实现软复位么。。。

使用特权

评论回复
8
huangqi412| | 2011-7-19 14:33 | 只看该作者
如果是实现软复位,自己想想该咋弄。。。

使用特权

评论回复
9
gurong60| | 2011-7-19 16:30 | 只看该作者
一般单片机都带有软件复位,好像是往固定寄存器送数

使用特权

评论回复
10
lxyppc| | 2011-7-19 16:42 | 只看该作者
volatile unsigned char flag = 0;
void main(void){
start:
while(1)
{
func1();
func2();
if(flag){
    flag = 0;
    goto start;
}
}
}

void INT1Serv(void) interrupt 2
{
........

flag = 1;
}

使用特权

评论回复
11
dqyubsh| | 2011-7-19 20:32 | 只看该作者
中断里设置标记,主循环处理标记,这是通行的作法。

尝试忘掉GOGO。估计写三十年程序,也用不到一回。

使用特权

评论回复
12
bbqqbbqqbbq| | 2011-7-19 21:30 | 只看该作者
用goto的话,只能返回到原来的函数

就是说在中断里面用goto只能返回此中断函数里面。。。

不能跳到其他函数。。。

楼主这个问题我以前也遇到过。。。

使用特权

评论回复
13
linqing171| | 2011-7-19 21:32 | 只看该作者
看在白娘子的份上,如果用汇编比较好搞,不管reti 还是神马,都简单。
再C下,需要用setjmp 这个C标准的函数。
不过RETI还是必须的。调用一个带int的空中断函数就可以了。

使用特权

评论回复
14
linqing171| | 2011-7-19 21:33 | 只看该作者
10楼是同步的标准做法。

使用特权

评论回复
15
yewuyi| | 2011-7-19 22:51 | 只看该作者
:L,这样的代码还有结构性可言吗?

使用特权

评论回复
16
yewuyi| | 2011-7-19 22:51 | 只看该作者
俺实现找不到这样写代码的必要性

使用特权

评论回复
17
caner_hn| | 2011-7-20 09:02 | 只看该作者
特意验证:VC,GCC,IAR FOR STM8,IAR FOR ARM不允许这样写程序,LABLE只允许在同一函数内使用.不同函数可以使用相同的LABLE名.

使用特权

评论回复
18
jack_shine| | 2011-7-20 09:05 | 只看该作者
尽量减少使用goto语句

使用特权

评论回复
19
SmartEnergy| | 2011-7-20 09:51 | 只看该作者
1. 直接跳转过去,必死无疑。
2. 可以讲堆栈中的返回点数据改掉来达到乾坤大挪移。
3. 第10楼的建议。
4. 改进算法。要坚信,不管你算法多优秀,总有替代的办法。

使用特权

评论回复
20
redbat_228| | 2011-7-20 10:53 | 只看该作者
支持10楼的方法,慎用goto。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:冷暖自知,泰然处之;持之以恒,必有所成!

0

主题

609

帖子

2

粉丝