datasheet

单片机嵌入式系统软件的几种复位方式

2018-02-14 22:02:39来源: eefocus 关键字:单片机  系统软件  复位方式

    飞思系列的8位单片机没有特定的控制寄存器可以实现软件复位,当程序运行过程中代码需要强行产生一个复位时必须通过一些软件技巧实现:

    软复位,程序从头运行,硬件不复位。复位脚无复位脉冲输出

    这可以通过直接获取复位向量的方式来实现:

    void ForceReset(void)


    {

    uniON {

    void (*vector)(void);

    byte c[2];

    } SOFtReset;

    softReset.c[0] = *(byte*)0xFFFE; //get the reset vector

    softReset.c[1] = *(byte*)0xFFFF;

    softReset.vector(); //re-STart the code flow

    }

    硬复位,程序从头运行,内部所有硬件模块和寄存器同时复位,复位脚有复位脉冲输出

    这必须结合FSL 8位单片机内部的架构特点来实现:

    1)COP(看门狗)复位

    这是最简单的一种方式。程序死循环然后等看门狗作用产生复位。你必须事先启动看门狗功能,复位过程将有少许延时。

    void ForceReset(void)

    {

    DISAbleInterrupts; //disable all interrupt

    for(;;); //wait for watch-dog reset

    }

    2)非法寻址复位

    当指令对某一个不存在的内存空间进行寻址操作时单片机会产生硬件复位。

    void ForceReset(void)

    {

    asm JMP 0xD000; //jump to illegal address will result a RESET

    }

    注意不同芯片其有效内存空间配置不同,具体地址需参考芯片数据手册做适当调整。

    3)非法指令复位

    当执行一条不存在的指令编码时单片机会产生硬件复位。这里又可以分两种手段:

    a) 利用“合法”指令在特定配置模式下的“非法性”,例如STOP指令。

    如果在芯片的配置寄存器SOPT中设定STOPE位为0禁止STOP指令,你若再执行STOP就会认为是非法指令从而立即产生复位。

    void ForceReset(void)

    {

    asm STOP; //illegal STOP will result a RESET, note SOPT_STOPE must be 0

    }

    如果你的应用中正常情况下不会用到STOP,就可以用这种方式。如果你本来就要用STOP指令就不能用这种方式产生复位,因为SOPT寄存器在复位后只能被写一次。

    b) 人为制造非法指令然后强行运行。

    这是比较通用的一种方法,这个S08内核系列均可适用。在单片机的指令表中确认一条不可能出现的指令编码,例如0x9E10,将其填入RAM中然后强制运行,即可立即产生复位。

    void ForceReset(void)

    {

    byte illegalCode[2];

    illegalCode[0] = 0x9e;

    illegalCode[1] = 0x10; //illegal instruction

    ((void (*)(void))illegalCode)(); //execute illegal instruction will result a RESET

    }


关键字:单片机  系统软件  复位方式

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/mcu/article_2018021437806.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:基于嵌入式USB主机和ZigBee无线通信技术的音响系统解决方案
下一篇:最后一页

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利
推荐阅读
全部
单片机
系统软件
复位方式

小广播

独家专题更多

东芝在线展会——芯科技智社会创未来
东芝在线展会——芯科技智社会创未来
2017东芝PCIM在线展会
2017东芝PCIM在线展会
TI车载信息娱乐系统的音视频解决方案
TI车载信息娱乐系统的音视频解决方案
汇总了TI汽车信息娱乐系统方案、优质音频解决方案、汽车娱乐系统和仪表盘参考设计相关的文档、视频等资源

何立民专栏

单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2018 EEWORLD.com.cn, Inc. All rights reserved