打印

怎样在中断内外共同调用同一个函数?

[复制链接]
2064|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cafuyang001|  楼主 | 2011-4-27 15:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有一段代码需要在中断内外共同使用,在中断外使用的时候我是先关掉总中断,然后调用的这个函数,但是函数运行到这里的时候就自动跳到了0x00000000的地址上运行。
哪位大虾能帮忙解决一下啊
沙发
yan2005| | 2011-4-27 16:43 | 只看该作者
代码共同使用,说到底是要对同一个资源(内存变量或者寄存器)进行操作吧。简单的解决办法,就是再写一个函数吧,分开用。或者看看其他类似的例子,改着用。

运行到0x00000000附近的地址上,有可能是长跳转不过去。可能和linker脚本指定位置有关。

使用特权

评论回复
板凳
btiger2000| | 2011-4-28 12:58 | 只看该作者
就是可重入问题

使用特权

评论回复
地板
adams.gh| | 2011-4-28 18:06 | 只看该作者
不需要关中断吧。 M3的局部变量是放在堆栈里的,函数均可重入。

将8051应用程序迁移到M3.pdf

777.7 KB

使用特权

评论回复
5
xwj| | 2011-4-28 18:42 | 只看该作者
最好还是改个名字再复制一个。

另外,不要再中断里做太过复杂、太耗时的事

使用特权

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

本版积分规则

0

主题

13

帖子

1

粉丝