OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5277|回复: 4

求助:中断保护现场与恢复现场

[复制链接]

10

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
62
金钱
62
注册时间
2017-5-3
在线时间
44 小时
发表于 2017-5-3 14:16:35 | 显示全部楼层 |阅读模式
2金钱
//main函数
u8 x=0;
int main(void)
{
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
        delay_init(168);   
        uart_init(115200);        
        LED_Init();                                     
        EXTIX_Init();      
        while(1)
        {
                  printf("%d\r\n",x);       
                x+=1;
                delay_ms(1000);          
        }
}

//外部中断函数
extern u8 x;
void EXTI4_IRQHandler(void)
{
        delay_ms(10);       
        if(KEY0==0)         
        {                                 
                x=1;
        }                 
         EXTI_ClearITPendingBit(EXTI_Line4);
}



贴出了关键代码,在主程序中,对x不停的进行加一操作
在按键按下的时候触发外部中断,中断服务函数里对x重新赋值为1。
实验现象是:比如在主程序中已经加到10了,然后按按键,接着x又重新从1开始计数。

在x=10的时候按按键触发中断,先进行现场保护,然后在中断函数中将x置为1,在恢复现象的时候难道不应该将x恢复成10?保护现场与恢复现场难道不是把中断服务函数 里的改过的变量恢复到执行中断之前?求大神指教


最佳答案

查看完整内容[请看2#楼]

进中断,保护现场,是编译器的工作.与程序员无关.他也不会保护用户的变量呀.一般来说保护CPU寄存器.状态寄存器,累加器等.
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6662
金钱
6662
注册时间
2016-5-29
在线时间
910 小时
发表于 2017-5-3 14:16:36 | 显示全部楼层
进中断,保护现场,是编译器的工作.与程序员无关.他也不会保护用户的变量呀.一般来说保护CPU寄存器.状态寄存器,累加器等.
回复

使用道具 举报

10

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
62
金钱
62
注册时间
2017-5-3
在线时间
44 小时
 楼主| 发表于 2017-5-3 14:28:31 | 显示全部楼层
操作系统 发表于 2017-5-3 14:24
进中断,保护现场,是编译器的工作.与程序员无关.他也不会保护用户的变量呀.一般来说保护CPU寄存器.状态寄存 ...

可以理解成现场保护保护的是运行环境吗?
回复

使用道具 举报

22

主题

751

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1605
金钱
1605
注册时间
2015-6-10
在线时间
222 小时
发表于 2017-5-3 15:40:41 | 显示全部楼层
Widow 发表于 2017-5-3 14:28
可以理解成现场保护保护的是运行环境吗?

所有的函数都是地址

你可以把现场保护看成把现在执行的地址保存起来

但是不改变值
回复

使用道具 举报

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6662
金钱
6662
注册时间
2016-5-29
在线时间
910 小时
发表于 2017-5-3 15:41:46 | 显示全部楼层
Widow 发表于 2017-5-3 14:28
可以理解成现场保护保护的是运行环境吗?

系统要保护的是系统公用的资源相关寄存器.如工作寄存器.状态寄存器.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-17 16:01

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表