运行终止后。。。

[复制链接]
1075|11
 楼主| jiahy 发表于 2014-8-2 20:03 | 显示全部楼层 |阅读模式
main()
{
     do_init();

    int i = 0;
     while (i++ < 10000)
     {
         if(task_ok())
             break;
     }

    do_finish();
}
这样的程序,运行终止后,PC指针在哪个位置?
 楼主| jiahy 发表于 2014-8-2 20:03 | 显示全部楼层
此时的MCU的功耗怎样的?(不考虑外围器件)
 楼主| jiahy 发表于 2014-8-2 20:03 | 显示全部楼层

还有,reset引脚复位,程序是否可以重新运行?
zhaoxqi 发表于 2014-8-2 20:05 | 显示全部楼层
PC指针应该指向do_finish();末
heweibig 发表于 2014-8-2 20:06 | 显示全部楼层
jiahy 发表于 2014-8-2 20:03
此时的MCU的功耗怎样的?(不考虑外围器件)

这个看你时钟设置 了
heweibig 发表于 2014-8-2 20:06 | 显示全部楼层
jiahy 发表于 2014-8-2 20:03
还有,reset引脚复位,程序是否可以重新运行?

复位后可以重新运行
jiajs 发表于 2014-8-2 20:09 | 显示全部楼层
1.do_finish()里面如果没有while(1)之类的结构,PC会不断加一跑到程序之外,然后就看你的代码之外载的是什么了,是一堆FF还是一堆00,不过一般会等价于NOP指令,PC溢出,程序复位,从头开始。
jiajs 发表于 2014-8-2 20:09 | 显示全部楼层


2.一样的,你没有专门的进行功耗控制,那原先是怎样就是怎样的。
jiajs 发表于 2014-8-2 20:09 | 显示全部楼层


3,复位后可以重新运行
 楼主| jiahy 发表于 2014-8-2 20:10 | 显示全部楼层
哦,多谢大家了
李冬发 发表于 2014-8-11 00:58 | 显示全部楼层
MCU的程序是不能“终止”的。用个死循环。
comeon201208 发表于 2014-8-11 22:44 | 显示全部楼层
jiajs 发表于 2014-8-2 20:09
1.do_finish()里面如果没有while(1)之类的结构,PC会不断加一跑到程序之外,然后就看你的代码之外载的是什 ...

这个分析的比较透彻的,,支持下的啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

862

主题

9861

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部