gpt4 book ai didi

embedded - 芯片(SoC)中的各种复位

转载 作者:行者123 更新时间:2023-12-02 18:54:34 25 4
gpt4 key购买 nike

我想知道不同种类的复位以及芯片中的定义。最好冷,暖,系统,应用,开机复位。

同样,对于它们每个的简单示例也受到高度赞赏。

谢谢。

最佳答案

不知道您到底想了解什么。重置可以并且可以以多种不同的方式和方式使用。通常,没有规则说明何时何地可以使用它们。

相对于电流在电路中流动的速度,从“接通电源”到电​​压和电流稳定在可用且稳定的状态(以便逻辑可以启动)的时间要花相当长的时间。一旦上电,用于驱动逻辑本身的时钟或振荡器将需要一些时间才能稳定下来。使用某种时钟倍频器的芯片。例如,您的数兆赫兹处理器经常会运行一个100Mhz的振荡器,并与芯片内部的振荡器成倍增加。该电路需要一段时间才能锁定振荡器时钟,然后生成其倍频时钟。因此,您经常会看到全局复位,不需要等待芯片启动和运行的逻辑就会一直保持复位状态,直到一切稳定下来以便可以运行为止。这可以并且称为加电复位。接通电源后,某些电路用于将芯片的其余部分保持复位状态。有很多不同的方法可以做到这一点。

通常,上电复位用于电路板上的所有逻辑,有时每个芯片都有自己独立的上电复位电路,当然,某些系统是这两种极端情况的混合体。您可能将与板载大多数逻辑相关的复位称为系统复位。导致整个系统不只是一部分被重置和/或释放。

有时,您会看到允许软件选通全局复位的芯片,这也是许多不同的方法。您必须避免明显的鸡肉和鸡蛋问题。如果软件通过断言复位来控制复位线,则将导致处理器,因此软件本身将进入复位状态,从而阻止复位被释放。因此,可以为某些未通过上述重置进行重置的硬件提供命令以将重置保留一段时间,然后释放它。有时系统的工作方式可能导致软件在第一个写入之前发送两次写入,一个写入断言复位另一个写入释放(这可能是硬件设计不佳的软件黑客)。人们可能将其称为热复位,因为电源已经稳定,振荡器已经稳定,等等,但是出于某种原因或其他原因,希望将逻辑置于已知状态。

系统设计可以为软件提供执行系统范围的重置的能力,或者仅执行系统的一部分,或者仅执行软件在其上运行的处理器或其芯片。您可以想象,例如,系统已启动并且正在运行,该软件已将外围设备编程为执行某项操作,或者至少从上电复位状态对其进行了更改,然后仅处理器被复位,而外围设备未复位。这对于软件可能不希望如此,因为它必须退出复位状态,并且可能必须弄清楚外围设备是否也刚刚复位或处于未知状态。当软件启动时,软件设计可能无法假定外围设备处于已知的复位后状态。

这可以而且确实被带到了各种极端。时钟逻辑会消耗功率,如果您的SOC所使用的外设不使用它,则可能会明显浪费该系统不会使用的电源时钟逻辑。因此,某些系统设计成具有系统的各个部分,甚至每个单独的外设都具有复位和时钟使能,从而使软件可以精确控制功耗,并能够轻松地将芯片的某些部分复位为已知状态,从而可以使用或重新使用。那些外围设备的使用更加容易。通常用于以已知方式启动(嵌入式)系统。

寒冷是温暖的对立面,冷重置可能是“电源重启”的另一种说法。关闭电源(暗示电路/系统变冷),然后再打开电源,以便一切都可以从寒冷中恢复过来并重新稳定下来。热重置不会影响整个系统,但只有一部分系统会影响您使用“热”和“冷”的术语。热复位解决了一些崩溃问题,而冷复位理论上解决了更多问题,因为理论上的冷复位将整个系统复位。但是自然地,例如,如果您有一台具有自己电源的扫描仪,打印机或其他外围设备,不一定会从主计算机的冷复位中复位,则需要关闭所有电源并将其重新启动。有时,系统被设计为在主机热复位或冷复位时外围设备会热复位。

确实没有魔术,设计师认为需要复位的任何逻辑块都将具有复位,复位的局部性或全局性是设计的一部分。可以认为芯片与由单个函数调用和库调用组成的软件项目没有什么不同。用于创建现代逻辑的编程语言非常类似于具有软件功能和调用函数等功能的软件项目。主要区别在于,逻辑确实可以并行运行,其次逻辑功能可以并且有时将有数十个到数百个在软件中,代码段是线性执行的,而函数往往具有适度的调用次数。看起来使用全局变量的项目似乎是合乎需要的,但程序启动时,编程语言会将这些全局变量假定为具有某种状态。在C语言中,当main()发生时,有一些语言规则可以告诉您所有全局变量的状态,同样,当输入一个函数时,您所有本地变量的状态也是如此。您可以想象代码中将单个全局变量重置为已知状态的位置,x = 0; y = 7;等等。稍后根据以前的状态x ++确定它们的使用。 y- = z;当您希望将某些东西放回已知状态时,逻辑没有什么不同,您可以提供一种执行此操作的机制。如果您的代码希望将大量变量放回已知状态,以便可以重新开始任务,例如,一个图形程序已完成一个文件,而没有退出该程序,则希望释放为该程序分配的所有内存。以前的图像,灰色菜单和按钮,这些图像和菜单按钮在没有打开的图像文件时没有意义,等等。您可能有一个函数调用其他导致重大清理的函数。这与热重置无异。退出程序并再次启动程序与冷重置无异。输入main()时变量的状态或调用函数时局部变量的状态是这些变量的上电复位状态。

关于embedded - 芯片(SoC)中的各种复位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13582892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com