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

发布者:橙子1234最新更新时间:2018-02-14 来源: 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

    }


关键字:单片机  系统软件  复位方式 引用地址:单片机嵌入式系统软件的几种复位方式

上一篇:基于嵌入式USB主机和ZigBee无线通信技术的音响系统解决方案
下一篇:基于MC9S08GB60单片机为控制核心的汽车电控空气悬架系统设计

推荐阅读最新更新时间:2024-03-16 15:55

一种简单串行鼠标控制的单片机实现
摘要:通过对鼠标底层通信原理与协议的深入分析,探讨以AT89C2051单片机构成串行鼠标的实现方法;介绍鼠标编码器数据取软件的设计原理及方法,给出串行鼠标的软件设计。 关键词:鼠标 AT89C2051 软件设计 鼠标是一种快速定位器,通过移动鼠标可以快速定位屏幕上的对象,是计算机图形界面交互的必用外部设备。通常,鼠标通过微机中的串口或PS/2鼠标插口与主机连接。当在平面上移动鼠标时,通过机械或光学的方法把鼠标滚轮移动的距离和方向转换成脉冲信号传送给计算机,计算机鼠标驱动程序将脉冲个数转换成鼠标的水平方向和垂直方向的位移量,从而控制显示屏上光标箭头随鼠标的移动而移动。根据此原理,我们可利用鼠标的上位机驱动程序来设计测控系统中的
[单片机]
MSP430单片机的特点
MSP430系列单片机的迅速发展和应用范围的不断扩大,主要取决于以下的特点。 a. 强大的处理能力: MSP430系列单片机是一个16位的单 片机,采用了精简指令集(RISC)结构,具有丰富的寻址方式(7种源操作数寻址、4种目的操作数寻址)、简洁的27条内核指令以及大量的模拟指令;大量的寄存器以及片内数据存储器都可参加多种运算;还有高效的查表处理指令;有较高的处理速度,在8MHz晶体驱动下指令周期为125 ns。这些特点保证了可编制出高效率的源程序。 b. 在运算速度方面,MSP430系列单片机能在8MHz晶体的驱动下,实现125ns的指令周期。16位的数据宽度、125ns的指令周期以及多功能的硬件乘法器(能实现乘加)相配合
[单片机]
入门单片机需要购买什么东西,学哪款单片机最好?
最近看到有些人说学单片机好烧钱,把我看懵了,我的第一感觉是这孩子到底有多穷。 我印象中,10年前我自学单片机就买了一个51开发板,然后买了一套智能小车配件,总共花费不到500块钱。 通过几个月学习找到第一份工作1.8k,半年后涨到5k,大概1-2年后,每个月都能通过这个技术获得1万多报酬,如果当初懂投产比这个概念,我应该会像中了彩票一样开心。 所以别说500块,即便是5000块让你能够学会这门技术,我都觉得超值。 Ok,言归正传,对于单片机学习入门。 一、入门单片机要买什么? 我的原则和建议是能买最低配绝对不买最高配。 曾经我买STM32开发板的时候就做过这种傻事,总想着买最高配能多学点东西。 其实高配那些东西,在
[单片机]
入门<font color='red'>单片机</font>需要购买什么东西,学哪款<font color='red'>单片机</font>最好?
基于小型MCU的LED照明的色彩控制方案
在大趋势下,LED用于通用照明指日可待。LED在通用照明中优势很多,如寿命更长以及效率更高。然而, LED技术还面临着一些挑战。其中一个挑战就是如何产生高品质的白光。白光LED的构成包含了蓝光LED和能将光输出移至光谱的其他波段的一种荧光粉。许多白光LED都无法产生高显色指数(Color Rendering Index,CRI),该参数用于衡量光源真实重现色彩的能力。   通过混合两种或两种以上颜色的LED光,可以获得品质更高的白光系统。在这些多色系统中,每种色源的光输出会随时间和温度而漂移。光传感器和小型单片机 (MCU)可用于维持特定颜色和相关色温(CorrELated Color Temperature,CCT)。在本文中
[模拟电子]
基于小型<font color='red'>MCU</font>的LED照明的色彩控制方案
8051单片机中DPTR的扩展设计
摘要 首先对比分析在执行大规模数据转移时,传统8051单片机和进行DPTR扩展后的8051单片机在数据转移执行效率上的差别。通过详细分析DPTR操作所涉及的因素,具体实现对DPTR的扩展,并进行实际仿真测试。 关键词 8051单片机 DPTR 数据转移执行效率   单片机的出现是计算机技术发展史上的一个里程碑,它使计算机从海量数值计算进入到控制领域。在单片机中,以8051系列最为经典,至今仍是最普及、广泛使用的8位MCU架构。业界许多技术人员在其基础上不断进行性能扩展,使得8051系列芯片不断完善,从而形成一个庞大的体系。在传统的 8051 系列单片机中,设置了一组双字节寄存器(数据指针DPTR),用于访问外接的64 KB数据
[工业控制]
8051<font color='red'>单片机</font>中DPTR的扩展设计
Atmel推出可穿戴集线器管理SAM G系列MCU
Atmel公司扩展了用于可穿戴设备和传感器集线器管理的超低功率SAM G ARM Cortex M4 MCU产品组合   新增SAM G54/G55系列具备业界最小外形、超低功率和最高性能,面向快速发展的物联网市场,为可穿戴设备和传感器集线器管理提供了最新片上系统(SoC)解决方案   中国北京,2015年1月7日 – 全球微控制器(MCU)和触控技术解决方案领域的领导者Atmel®公司(NASDAQ:ATML)今日宣布推出SAM G54和SAM G55,扩展了其屡获奖项的基于Cortex®-M4的MCU产品SAM G系列。   新系列定位于快速兴起的物联网(IoT)市场,为其中包括健身手环和智能手表、传感器集线
[单片机]
基于PIC单片机的智能化逆变电源控制系统
  随着科学技术的进步,电源质量越来越成为各种电气设备正常和良好工作的基础。电源技术领域的一个持续的研究课题即是研究作为电子信息产业命脉的电源的可靠性和稳定性。   而逆变器作为电源的核心部分,其调制技术很大程度上决定了电源输出电压的质量。目前最常用的调制技术是正弦脉宽调制(SPWM)。随着单片机的出现及其广泛应用,智能化控制方法已经逐渐替代传统的分立元件电路产生方法或是专用芯片产生方法。智能化逆变电源的优势在于它不仅能实现调制信号的输出,还为系统数据参数的监控、处理及显示提供接口。同时它与现代计算机技术更好地结合产生了故障自诊断和自我保护功能,可提高系统的稳定性。   在充分考虑工业控制成本及稳定性要求的前提下,本设计采用PIC
[电源管理]
基于PIC<font color='red'>单片机</font>的智能化逆变电源控制系统
详解80C51单片机复位电路和时钟电路
复位电路 在80C51中,最常见的复位电路就是下图的上电复位电路。 它能有效地实现上电复位和手动复位。RST引脚高电平有效。 其有效时间应持续24个振荡周期以上才能完成复位操作。若使用6MHz晶振,则需持续4us以上才能完成复位操作。 在通电瞬间,由于RC电路的充电过程,在RST端出现一定宽度的正脉冲,只要正脉冲保持10mS以上,就能使单片机自动复位。 CPU在第二个及其周期内执行内部复位操作,以后每个机器周期重复一次,直至RST端电平变低。 在单片机复位器件,ALE和~PSEN信号都不产生。复位操作将对部分专用寄存器产生影响,复位后,这些内部寄存器的状态发生变化,如下表。 时钟电路 在80C51单片机内有一个高增益的反
[单片机]
详解80C51<font color='red'>单片机</font>的<font color='red'>复位</font>电路和时钟电路
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
热门活动
换一批
更多
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件
更多每日新闻
502 Bad Gateway

502 Bad Gateway


openresty
随便看看
    502 Bad Gateway

    502 Bad Gateway


    openresty
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved