微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 为嵌入式应用构建黑盒子

为嵌入式应用构建黑盒子

时间:08-31 来源:互联网 点击:
共同工作

随着处理器变得日益复杂,多处理器调试支持变得更为重要。举例而言,摄影机需要进行实时编码。这是挑战性很高的任务,可能要求处理器具备双内核或混合 DSP + RISC 的结合,将图像从控制/应用处理中划分出来。

但是,如果您将几个处理器或单个处理器与多个加速器或片上引擎相集成,那么调试本身就会变得更为困难。在双内核实施中,大多数调试工具在显示写入特定存储器位置的内容时不会指明具体核心。调试外设使您能够监控总线,使之像存储器一样共享资源,并为您提供明确执行写入的处理器所需的资源。您应注意到,这种情况下,可视性增强也会加大复杂性,因此您需要能够为每个处理器交叉各个追踪缓冲区的调试环境。

支持总线监控的多处理器设备很可能也支持全局断点。标准断点机制只能在几个周期的等待时间后停止其他处理器。这使处理器彼此不同步,因为每个处理器都执行不同数量的周期,结果就好像周期是在不同时间运行的一样。任何处理器间的通信都会使断点进一步复杂化,特别是在两个处理器都传输数据的情况下更是如此;如果数据发送但并未接受,那么您可能不知不觉地丢失事务处理的一部分。如果不同步,那么您需要重设并重启两个处理器以及应用,以返回同步。如果程序错误的原因较复杂,那么您可能会发现很难成功进行断点,即便您知道造成错误的条件组合也一样无济于事。全局断点停止所有处理器和相同循环上的引擎,从而避免上述困难,这就保持了其相对位置。

现实编程

最难以重建并定位的程序错误是实时出现的错误。即便您停止了处理器,现实情况还会继续,这样就会出现问题。举例来说,您操纵马达工作(比如照相机的镜头缩放)或者通过网络连接传输数据,即便您仅是短时间地停止处理器,您也会丢失数据包的一部份,如果不停止系统的话,您就会丢失数据。即便您不担心数据本身,比如在有持续的视频源情况下,您仍然会丢失数据流中的部分。恢复执行时,如果应用不停止流处理等待再同步,那么视频流会被破坏并且发生错乱。

就马达而言,即便您停止处理器,驱动运动的电压也都会继续。数据损失与机械盲点截然不同。您通常可以重新发送数据,但没有监控运行的马达可能导致机型故障甚至损坏。举例来说,某些摄影机带有自动打开的镜头,只要镜头盖推向一边就会启动。如果您在处理器停止时无意中关闭了镜头盖,那么您就可能在恢复操作时导致镜头损坏。如果您在快门打开开始采集影像时无意停止了处理器,那么就会导致快门锁定打开。如果您没有关闭快门的自动机制,那么就会致使影像传感器过度曝光而在无意中遭到损坏。

管理和控制机械组件有两种基本方法:通过软件或通过硬件中断。例如,我们可用定期中断来管理马达控制缩放。每次触发中断时,处理器都会评估镜头的位置,确定马达相对于其应处目的地的位置,并据此调节驱动电压。马达在电压调节前不断运动。不过,这种方法的问题在于,如果您在缩放时停止了处理器,那么马达还会继续运动,这就可能导致马达损坏。

硬件中断的一个实例是在数码相机上设置打开/关闭机制。您不会希望用户能够立即关闭电源,因为照相机可能仍处在处理影像当中,还不能存储影像到非易失介质。当用户关闭照相机时,这会触发硬件中断,告诉照相机关闭。不过,如果您停止了处理器并尝试关闭照相机以节约电池电量,那么照相机还会保持打开,因为它还不能为中断提供服务。不妨设想这样的情况,您坐在电脑前准备从照相机传输影像。这时您突然要离开,就关闭了照相机。您回来时则发现电池已经没电了,所有数据全部丢失。

因此,我们可以看到,即便处理器已经停止,但还是存在时间关键性事件以及需要中断处理继续进行的情况。如果您就可靠硬件进行调试,那么通常就要处理该问题;换言之,如果您对硬件完全有信心并致力于应用问题时,就要处理上述问题。您确实只需停止系统的一部分。您希望机械作用在一定程度上继续进行,或许也希望网络和通信功能继续进行。如果您停止应用时不能让上述事件继续,那么您在调试系统、避免干扰实施部分工作时就有大量事情要做了。

停止的其他名称

正因为上述原因,目前处理器已开始支持时间关键性中断掩码。中断掩码标识出即便在处理器停止时仍需要继续接受服务的中断。调节掩码的功能相当重要,因为您可能需要停止某些基于具体应用的硬件定时器中断。因此,您并不受限于通用停止,而是可以很大程度上控制停止。请注意,"停止"这个词有了全新的含义,因为掩码时间关键性中断触发时,

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top