当前位置:首页 > 单片机 > 单片机
[导读] 飞思系列的8位单片机没有特定的控制寄存器可以实现软件复位,当程序运行过程中代码需要强行产生一个复位时必须通过一些软件技巧实现: 软复位,程序从头运行,硬件不复位。复位脚无复位脉冲输出 这

飞思系列的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

}


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在FPGA和IC设计领域,经常会面临一个挑战:多个端口同时竞争一个端口的数据。在这种情况下,采用RR调度策略可能是一种解决方案。

关键字: FPGA 嵌入式系统 IC设计

“实现机器人操作系统——电机控制器ROS1驱动程序简介”一文中概述了新型ADI Trinamic™电机控制器(TMC)驱动程序,并讨论了将电机控制器集成到机器人操作系统(ROS)生态系统中的方法。TMC ROS1驱动程序...

关键字: 电机控制器 机器人 嵌入式系统

本设计的控制系统主要包括:倾斜模块、超声波模块、语音模块、光敏电阻模块及电源等。

关键字: 单片机 STC51

本文针对电动两轮车自燃防控装置的开发与分析进行了研究。通过电动两轮车自燃原因分析,提出了电动两轮车的自燃防控智能装置设计思路,介绍了电动两轮车的自燃防控智能

关键字: STC89C52RC 单片机 微控制器

现在市面上还不存在一种方便实验人员选取芯片,以及方便管理人员对芯片进行智能化管理的芯片柜,为此希望通过研发这款智能芯片柜,来解决以上问题。​

关键字: 单片机 芯片

这款全新的中端MCU系列为设计人员提供了更高水平的安全性和灵活性

关键字: 嵌入式 单片机

单片机是一种嵌入式系统,它是一块集成电路芯片,内部包含了处理器、存储器和输入输出接口等功能。

关键字: 单片机 编写程序 嵌入式

台湾新竹 – 2024年4月23日 – 著名的微控制器供货商新唐科技公司,与全软件开发生命周期提供跨平台解决方案的全球软件公司Qt Group宣布深化合作,扩展新唐科技人机界面(HMI)平台支持「Qt for MCUs」...

关键字: 微控制器 嵌入式系统 MCU

在现代电子技术的快速发展中,单片机以其高度的集成性、稳定性和可靠性,在工业自动化、智能家居、医疗设备、航空航天等诸多领域得到了广泛应用。S32单片机,作为其中的佼佼者,其引脚功能丰富多样,是实现与外部设备通信、控制、数据...

关键字: s32单片机引脚 单片机
关闭
关闭