看门狗 订阅
《看门狗》是育碧2013年发行的一款角色扮演类游戏,采用开放世界的沙盒玩法。游戏讲述了一个十分精彩的故事,该游戏采用了新的AnvilNext引擎,打造出了一个辽阔庞大的世界,这个开放世界的冒险游戏发生在芝加哥,那时的电子设备已经被内置于几乎所有物品中,整个城市都在依赖着他们。玩家要扮演Aiden Pearce,这是一位精通黑客技术的高手,于是他决定利用自己的特长来惩治全城的腐败分子,惩奸除恶。游戏以极高的自由度、出色的游戏质量与丰富的游戏内容被业界公认为开启次世代游戏的大门之作,该游戏被IGN评为年度最佳射击游戏 [1]  。《看门狗》英文版于2014年5月27日发售,中文版于6月25日发售。《看门狗》的WiiU版于2014年11月18日登陆北美,11月20日登陆欧洲,本作WiiU版的容量大小约为17.7GB。 [2] 展开全文
《看门狗》是育碧2013年发行的一款角色扮演类游戏,采用开放世界的沙盒玩法。游戏讲述了一个十分精彩的故事,该游戏采用了新的AnvilNext引擎,打造出了一个辽阔庞大的世界,这个开放世界的冒险游戏发生在芝加哥,那时的电子设备已经被内置于几乎所有物品中,整个城市都在依赖着他们。玩家要扮演Aiden Pearce,这是一位精通黑客技术的高手,于是他决定利用自己的特长来惩治全城的腐败分子,惩奸除恶。游戏以极高的自由度、出色的游戏质量与丰富的游戏内容被业界公认为开启次世代游戏的大门之作,该游戏被IGN评为年度最佳射击游戏 [1]  。《看门狗》英文版于2014年5月27日发售,中文版于6月25日发售。《看门狗》的WiiU版于2014年11月18日登陆北美,11月20日登陆欧洲,本作WiiU版的容量大小约为17.7GB。 [2]
信息
制作人
Dominic Guay
发行日期
2014年5月27日(英文) 2014年6月26日(中文) 2014-05-27(PS4) [3]
总    监
Jonathan Morin
原版名称
Watch Dogs
玩家人数
单人
发行阶段
已发行
其他名称
监听风暴,谍战危机
开发商
Ubisoft Entertainment
分    级
18+限制级(港版) M(美版) 18(欧版)
媒    介
BluRay-DVD、Digitaldownload
游戏类型
动作,冒险
发行商
Ubisoft Entertainment
销    售
Steam,UPlay,Origin
中文名
看门狗
内容主题
潜行,科幻,悬疑,赛博朋克,沙盒游戏
游戏平台
PC Play Station 3 Play Station 4 Xbox 360 Xbox One WiiU 收起
主要角色
艾登·皮尔斯
游戏引擎
Disrupt引擎
游戏画面
彩色、3D
游戏体积
8GB(Xbox360) 17GB(WiiU)
所属系列
看门狗
地    区
法国
看门狗游戏介绍
本作设定在2013年的芝加哥,一个神秘组织通过中央控制系统ctOS掌控了全城,所有人的秘密,银行账户,通话内容,和人脉他们都知道。玩家将扮演一位叫做艾登·皮尔斯(Aiden Pearce)的人,是一个黑客,他和一小部分黑客一样通过黑入ctOS,同样拥有掌控城市监视器系统的能力。原本他是可以凭此为所欲为了,但是在一次无知的侵入ctOS机密部分并失败后,ctOS通过反监控找到艾登的信息,因为此事艾登6岁的侄女死于“车祸”。亲人的死大大的刺激了艾登,他决定踏上报复这个神秘独裁组织的道路。 《看门狗》讲述了一个十分迷人的故事,同时还允许玩家由着自己的想法来随意操作电子产品。这个开放世界的冒险游戏发生在不久的将来的芝加哥,那时的电脑已经被内置于几乎所有物品中,整个城市都在依赖着他们。玩家扮演的艾登·皮尔斯,一个精明的黑客,他的家人因为他犯下的错误而遭遇到了不好的事情,于是他决定利用自己的特长来惩治全城的腐败分子,惩奸除恶。  从演示视频来看。游戏风格好似《银翼杀手》糅合了《卧底英豪》外加《侠盗猎车4》的调调。尽管游戏中的画质和特效可谓达到了主机机能的极限,但最让我们感到激动的并不是画质。而是游戏中处理得恰到好处的物理特效,如此精准流畅的特效以往我们只在某些PhysX游戏上看到过。不光如此,游戏世界看上去活灵活现,对于发生在一座大城市的游戏来说可谓非常关键的。  开发团队表示《Watch Dogs》力图给玩家呈现出一个真实的、生动的自由世界,玩家需要竭尽所能去废除一个腐败的体系。 在《Watch Dogs》中。最大特色在于主角可以潜入城市中任何相互连接的电脑系统,无论是通过操纵交通灯引发一次30辆车连环追尾事故用来在闹市枪战中诱捕敌人,还是入侵城市中无所不在的保安摄像机以得到任何人的个人信息,在游戏中就意味着你几乎可以支配整个虚拟世界。  “《Watch Dogs》突破了当今自由世界类游戏中的诸多限制,玩家将有能力控制整个城市,”育碧创意总监Jonathan Morin如是说,“在《Watch Dogs》中,任何与城市中央操作系统有关的东西都能成为一种武器。通过推进边界,我们为玩家提供了更大规模的动作选择并允许他们获取更多的信息,这都是过去的游戏所不具备的。” [4] 
收起全文
精华内容
下载资源
问答
  • 看门狗

    千次阅读 2019-05-09 13:13:13
    看门狗的概述: STM32内置两个看门狗,提供了更高的安全性,时间的精确性和使用的灵活性。两个看门狗设备(独立看门狗/窗口看门狗)可以用来检测和解决由软件错误引起的故障。当计数器达到给定的超时值时,触发一个...

    看门狗的概述:
    STM32内置两个看门狗,提供了更高的安全性,时间的精确性和使用的灵活性。两个看门狗设备(独立看门狗/窗口看门狗)可以用来检测和解决由软件错误引起的故障。当计数器达到给定的超时值时,触发一个中断(仅适用窗口看门狗)或者产生系统复位。

    独立看门狗(IWDG)由专用的低速时钟(LSI)驱动,即使主时钟发生故障它仍有效。独立看门狗适合应用于需要看门狗作为一个在主程序之外 能够完全独立工作,并且对时间精度要求低的场合。

    独立看门狗配置步骤:

    1.取消寄存器写保护:
    IWDG_WriteAccessCmd();
    2.设置独立看门狗的预分频系数,确定时钟:
    IWDG_SetPrescaler();
    3.设置看门狗重装载值,确定溢出时间:
    IWDG_SetReload();
    4. 使能看门狗
    IWDG_Enable();
    5. 应用程序喂狗:
    IWDG_ReloadCounter();

    溢出时间计算:
    Tout=((4×2^prer) ×rlr) /40 (M3)
    其中 :
    Tout 为看门狗溢出时间(单位为 ms);
    prer 为看门狗时钟预分频值(IWDG_PR 值),范围为 0~7;
    rlr 为看门狗的重装载值(IWDG_RLR 的值);

    窗口看门狗由从APB1时钟分频后得到时钟驱动。通过可配置的时间窗口来检测应用程序非正常的过迟或过早操作。窗口看门狗最适合那些要求看门狗在精确计时窗口起作用的程序。

    窗口看门狗配置步骤:

    1.使能看门狗时钟:
    RCC_APB1PeriphClockCmd();
    2.设置分频系数:
    WWDG_SetPrescaler();
    3.设置上窗口值:
    WWDG_SetWindowValue();
    4.开启提前唤醒中断并分组(可选):
    WWDG_EnableIT();
    NVIC_Init();
    5.使能看门狗:
    WWDG_Enable();
    6.喂狗:
    WWDG_SetCounter();
    7.编写中断服务函数
    WWDG_IRQHandler();

    窗口看门狗的超时公式如下:
    Twwdg=(4096×2^WDGTB×(T[5:0]+1)) /Fpclk1;
    其中:
    Twwdg: WWDG 超时时间(单位为 ms)
    Fpclk1: APB1 的时钟频率(单位为 Khz)
    WDGTB: WWDG 的预分频系数
    T[5:0]:窗口看门狗的计数器低 6 位

    展开全文
  • 超长时间看门狗芯片 解决无线系统 看门狗
  • 独立看门狗程序,可供单片机初学者使用包含头文件与.c文件(main函数)
  • uboot启动时,当将cpu运行模式设置为管理模式后,就要关闭看门狗了,那么看门狗是干什么的呢? 狗狗是我们的好朋友,有时候,一条好狗狗能够救主人的性命,“看门狗”是cpu的“好朋友”,它也能够在cpu出状况的时候...

    uboot启动时,当将cpu运行模式设置为管理模式后,就要关闭看门狗了,那么看门狗是干什么的呢?

    狗狗是我们的好朋友,有时候,一条好狗狗能够救主人的性命,“看门狗”是cpu的“好朋友”,它也能够在cpu出状况的时候把它救活。

    看门狗其实就是一个可以在一定时间内被复位的计数器,当看门狗启动后,计数器开始自动计数,经过一定时间,cpu就会将这个计数器复位,如果没有被复位,计数器溢出就会对CPU产生一个复位信号使系统重启,这个复位的操作就是“喂狗”。

    看门狗就这样兢兢业业的守着它的主人cpu,当cpu出状况的时候,就不能喂狗了,看门狗饿了就知道cpu不正常工作了,然后发送复位信号让cpu重新醒过来。

    对于一些安装在户外的设备,可以很直接的体现它的价值,比如运营商在荒郊野岭安装了好多基站,如果这里的基站停止工作了,就需要派人去这个基站手动重启了,有了看门狗以后,只要过一段时间没有喂狗,看门狗就将系统重启,节省了不少人力。
    看门狗主要分三种:

    1、内置在cpu内部的看门狗

    此类看门狗一般是将一个芯片中的定时器来作为看门狗,通过程序的初始化,写入初值,并启动定时器。程序按时对定时器赋初值(或复位),以免它饿了。这种看门狗是可以被禁用的(只要停止这个定时器即可),好比对那只要咬你的狗来个“葵花点穴手”。大部分CPU都内置看门狗,硬件原理可参考各芯片数据手册。

    优点:可以通过程序改变初始时间,也可以随时禁用
    缺点:需要初始化,如果程序在初始化、启动完成前跑飞或在禁用后跑飞,看门狗就无法复位系统,这样看门狗的作用就没有了,系统恢复能力降低。
    内部看门狗原理图

    2、独立的看门狗芯片

    这种看门狗主要有一个用于喂狗的引脚(一般与CPU的GPIO相连)和一个复位引脚(与系统的RESET引脚相连),如果没有在一定时间内改变喂狗脚的电平,复位引脚就会改变状态复位CPU。此类看门狗一上电就开始工作,无法禁用。现在常用的芯片有:CAT705/CAT706、IMP706等等,溢出时间在1.6秒左右。 硬件原理可以参考各芯片数据手册和《基于Linux的嵌入式系统全程喂狗策略》。

    优点:无须配置,上电即用。无法禁用,系统必须按时喂狗,系统恢复能力高。
    缺点:无法灵活配置溢出时间,无法禁用,灵活性降低。

    3、软件看门狗

    这其实就是一个监控软件,对于硬件上出的问题它还是无能为力的,它主要对一些重要的软件进行监控。

    一些重要的程序,必须让它一直跑着;而且还要时时关心它的状态——不能让它出现死锁现象。(当然,如果一个主程序会出现死锁,肯定是设计或者编程上的失误。首要做的事是Debug。)但如果时间紧迫可以用软件看门狗,暂时应急。

    这种监控软件运行不出现界面窗口,具有一定的隐蔽性;它定时判断目标进程是否运行在当前系统中,如果没有则启动目标进程;判断目标进程是否“无响应”,如果是则终止目标进程;如果目标进程“无响应”的次数超过一定的数量,则重启整个系统。它的目的也是复位,但是它主要市复位进程,实在不行才复位CPU。

    讨论

    第二种和第三种看门狗,在这里不作讨论,下面将讨论怎么使用内置在cpu内部的看门狗。

    因为是内置在cpu内部,所以从电路图中就找不到看门狗的连接方式了,下面是看门狗的工作原理图:
    内部看门狗原理图
    从图中可以看出一下几点:

    1.看门狗使用的输入时钟是PCLK,关于时钟的知识将在后面进行详细分析

    2.看门狗的配置涉及到三个寄存器:控制寄存器(WTCON),数据寄存器(WTDAT),计数寄存器(WTCNT)

    3.看门狗先将PCLK时钟进行预分频 (prescaler),分频的精度为0~255 (2的8次方-1 ,由WTCON的8-15位进行设置),预分频后再除以一个分频因子(division factor,由WTCON的4:3两位进行设置,一共有4中选择——16,32,64,128),有PCLK、prescaler和division factor三个变量以后,就可以计算出看门狗计数器递减时间间隔:
    计数器递减时间间隔

    t_watchdog:看门狗计数器递减时间间隔,单位秒
    PCLK:APB总线工作始终,单位HZ
    prescaler value + 1:预分频大小,因为从0开始,所以需要加一
    division_factor:分频因子,有4个档——16,32,64,128

    当开发板一上电的时候,系统时钟是还没有初始化的,所以PCKL的时钟大小是和外部时钟一样的,cpu连接的外部晶振如下图:
    外部晶振图

    所以刚上电时,PCKL的大小12MHz,WTCON[15:8]设置为74,除数因子选择16,通过上面公式可以计算出,看门狗控制器递减时间间隔0.1毫秒。将WTCNT里的值设置为0x2710(十进制10000),那么看门狗会每过一秒钟产生一次超时。

    我们来看看控制寄存器(WTCON),数据寄存器(WTDAT),计数寄存器(WTCNT)芯片手册:
    芯片手册

    从上图可以看到WTCON的默认状态:

    [0]=1 当看门狗计时器超时的时候,开启发送reset信号的功能
    [2]=0 超时的时候不发送中断
    [4:3]=00 默认分频因子是1/16, division_factor=16
    [5]=1 开启看门狗计数器,看门狗会按照WTCNT中的初始值进行递减,直到超时
    [15:8]=0x80 换成十进制是128, prescaler=128

    因为刚开机的时候,PCLK=12M, prescaler=128, division_factor=16 , 所以可以计算出 t_watchdog=1/(12M/129/16)=(129*16)/(12000000)=0.000172s=0.172ms

    WTDAT寄存器
    上图是WTDAT寄存器的芯片手册,默认值是0x800, 十进制是2048

    计数器寄存器
    上图是计数器寄存器的芯片手册,默认值也是0x800,十进制是2048

    所以刚上电的时候,看门狗的超时时间是:time_out=2048*0.000172=0.352252s

    0.352252s是如此的短暂,所以在开机的时候如果没有关闭看门狗,它将每隔0.352252s就发送一次reset信号重启cpu,不管uboot运行到哪个阶段,都将被看门狗终止并重启。

    从上面可以得出结论,板子重启时,必须尽早关闭看门狗,以便后面的代码顺利执行。

    看门狗关闭以后,需要在什么时候开启呢?我们将会在后面分析uboot和内核代码的时候进行分析。

    下面将使用一个例子演示对看门狗的操作。

    Makefile

    watch_dog.bin:watch_dog.S    
        arm-linux-gcc -g -c -o watch_dog.o watch_dog.S    
        arm-linux-ld -Ttext 0x000 -g watch_dog.o -o watch_dog_elf    
        arm-linux-objcopy -O binary -S watch_dog_elf watch_dog.bin    
        
    clean:    
        rm -rf watch_dog.bin *.o watch_dog_elf   
    

    watch_dog.S

    @ 关闭看门狗实验  
    .text  
    .global _start  
    _start:  
      ldr r0, = 0x53000000                       @ WTCON寄存器地址加载到r0  
      
      mov r1, #0                                 @ r1 = 0  
      
      str r1, [r0]                               @ 将r1里的值存到r0里地址里  
    

    通过分析前面的寄存器的设置位可知,只要设置WTCON[5]为0即可,上述代码里,直接将整个WTCON寄存器里的位设置为0。

    @开启看门狗实验:  
    @watch_dog.S  
      
     .text  
     .global _start  
     _start:  
            @ 设置看门狗控制寄存器  
      
      
             ldr r0, =0x53000000                           @ 加载WTCON寄存器地址  
      
             @ 0x4a21 = [15:8]=74, [5]=1, [0]=1  
      
             ldr r1, =0x4a21                               @ 将0x4a21保存到r1里  
      
             str r1, [r0]                                  @ 将r1里的值存入r0指向的地址  
      
             @ 设置看门狗计数寄存器,该寄存器的值在上电后被加载, 1秒超时  
      
             ldr r2, =0x53000008                           @ 加载WTCNT寄存器地址  
      
             ldr r3, =0x2710                               @ 将0x2710保存到r1里  
      
             str r3, [r2]                                  @ 将r3里的值存入r2指向的地址  
      
      
             bl led_on                                     @ 调用led_on代码  
    
    loop:  
      
             b loop                                        @ 死循环  
      
    led_on:  
        ldr r0,=0x56000010    
        mov r1,#0x15400    
        str r1,[r0]    
                  
        ldr r0,=0x56000014    
        mov r1,#0x100    
        str r1,[r0]    
        mov pc,lr    
    

    程序开始定义两个常量地址,分别是WTCON,WTCNT的地址,ENRTY后面是程序的正文部分,首先通过ldr指令加载WTCON的地址到r0里,将0x4a21这个数加载到r1里,0x4a21是我们通过设置WTCON [15:8]=74 [7:6]=0,[5]=1,[4:1]=0, [0]=1得到的16进制数,将其值存入到r0地址里,这样WTCON里就是我们设置各位的值,然后同样道理再将0x2710存到WTCNT数据寄存器里,设置数据寄存器的值为0x2710。

    为了看到看门狗的重启效果,我们加入了一个小程序,用来点亮led灯,将上述代码在linux下编译完后,烧写到NORFLASH里可以看到每过1秒钟,开发板的led灯就闪一下。

    知识扩展

    开启了看门狗之后,控制器会定时的复位,为了防止不停的复位,就要进行“喂狗”操作,喂狗操作相对比较简单,只要在WTCNT里的计数减为0之前,将其值重置一个非0的数值即可,看下面的函数:feed_dog(该代码仅供读者参考,光盘源码中没有给出具体例子)

    		@ 喂狗程序  
            .text  
            .global _start  
              
            feed_dog:  
              
                       ldr r0, =WTCNT  
              
                       ldr r1, =0x2710  
              
                       str r1, [r0]  
              
                       mov pc, lr  
    

    喂狗程序对喂狗的时机必须要合适,否则在定时器还没来得及发生中断调用watchdog已经超时了,也将引起系统复位重启,通常系统里会开启另外一个时钟来为整个系统服务,它会定时的“告知”系统,在看门狗定时器超时之前,自动的调用喂狗程序。

    总结

    这篇文章讲了看门狗的一些内容,包括看门狗的作用,看门狗的分类,看门狗的工作原理和在arm处理器中看门狗的配置手册,并根据手册计算了看门狗的计时间隔和计时周期,最后用了一些例子演示了看门狗的操作过程。后面我们将继续根据uboot启动流程讲解中断相关的知识。
    看门狗流程
    ————————
    2018.12.11
    23:41
    (转载自CSDN网友)

    展开全文
  • 看门狗 看门狗 隐藏文件看门狗 看门狗 隐藏文件看门狗 看门狗 隐藏文件
  • 软件看门狗和硬件看门狗的作用和区别工业级无线路由器,作为无线组网中非常重要的设备,洞察客户应用场景,只要是关乎无线组网可靠性的需求,即使是最细微的技术应用都要做到极致,比如看门狗。为什么工业级无线...

    软件看门狗和硬件看门狗的作用和区别

    工业级无线路由器,作为无线组网中非常重要的设备,洞察客户应用场景,只要是关乎无线组网可靠性的需求,即使是最细微的技术应用都要做到极致,比如看门狗。

    为什么工业级无线路由器这么重视软硬件看门狗,今天我们就来看看软硬件看门狗区别。

    看门狗,又叫 watchdog timer,是一个定时器电路, 一般有一个输入,叫喂狗,一个输出到MCU的RST端,MCU正常工作的时候,每隔一段时间输出一个信号到喂狗端,给 WDT 清零,如果超过规定时间不喂狗(一般在程序跑飞时),WDT 定时超过,就会给出一个复位信号到MCU,使MCU复位. 防止MCU死机.

    看门狗的作用就是防止程序发生死循环或者说程序跑飞。

    工作原理:在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗,那么看门狗计数器就会溢出从而引起看门狗中断,造成系统复位。所以在使用有看门狗的芯片时要注意清看门狗。

    硬件看门狗是利用了一个定时器,来监控主程序的运行,也就是说在主程序的运行过程中,我们要在定时时间到之前对定时器进行复位如果出现死循环,或者说PC指针不能回来。

    那么定时时间到后就会使单片机复位。

    软件看门狗技术的原理和这差不多,只不过是用软件的方法实现,我们还是以51系列来讲,我们知道在51单片机中有两个定时器,我们就可以用这两个定时器来对主程序的运行进行监控。

    我们可以对T0设定一定的定时时间,当产生定时中断的时候对一个变量进行赋值,而这个变量在主程序运行的开始已经有了一个初值,在这里我们要设定的定时值要小于主程序的运行时间,这样在主程序的尾部对变量的值进行判断,如果值发生了预期的变化,就说明T0中断正常,如果没有发生变化则使程序复位。

    对于T1我们用来监控主程序的运行,我们给T1设定一定的定时时间,在主程序中对其进行复位,如果不能在一定的时间里对其进行复位,T1 的定时中断就会使单片机复位。

    在这里T1的定时时间要设的大于主程序的运行时间,给主程序留有一定的的裕量。

    而T1的中断正常与否我们再由T0定时中断子程序来监视。

    这样就够成了一个循环,T0监视T1,T1监视主程序,主程序又来监视T0,从而保证系统的稳定运行。

    26d773b977249f26add7c7973479fe1f.png

    软件、硬件看门狗的主要异同

    两者相同点如下:

    1) 都是通过定时器实现;定时时间到没有喂狗就进行复位。

    2) 都是需要在规定的时间内喂狗。

    3) 两者都是靠软件进行喂狗。

    两者的主要差异如下:

    1) 附加功能:硬件看门狗芯片一般还附带了延迟复位和电源检 测的功能,软件则没有。

    2) 屏蔽方法:软件看门狗很容易屏蔽关闭,只需修改其中的寄存器,而硬件看门狗一旦启动不断电就停不下来。

    3) 启动方式:软件看门狗很容易启动,只需修改其中的寄存器。硬件一般是收到第一个喂狗信号后就启动。

    4) 初始化:硬件看门狗上电后收到第一个喂狗脉冲就完成了初始化,软件看门狗则需要配置相关的寄存器(或者调用相关的看门狗子程序)。

    工业路由器看门狗设计

    杭州塔石物联网工业级无线路由器、工业级无线DTU具有双重看门狗,包括软件看门狗与硬件看门狗,当设备终端出现异常时,会智能进行软件唤醒或硬件断电自动重启,实时保障无线组网与无线数据传输畅通无阻。

    软件看门狗包括一个喂狗(kicking the dog or service the dog)进程。

    喂狗进程按一定的周期执行喂狗操作,该周期小于等于定时器的周期。

    具体地,当系统正常工作的时候,每隔一段时间输出一个信号到喂狗端,给定时器清零;

    如果超过规定的时间不喂狗,定时器超时,就会输出一个复位信号到系统,使系统复位,以防止系统死机。

    而硬件看门狗开启则不受软件的约束,设备上电就可以依赖上拉电阻提供的高脉冲开启看门狗,只要软件不及时喂狗,就复位,这个是无条件的。

    所谓一分钱一分货,在电子产品也是适用的。

    软件和硬件的看门狗的最主要差异在于开启看门狗的时机,软件看门狗必须初始化(配置)看门狗才能使用,如果软件看门狗是厂商提供的SDK中的一个API接口,开发者又没有能力修改底层的uboot、内核,无法在uboot、内核阶段开启和喂狗,开启看门狗的时机就很晚了,程序就有可能还没有跑到看门狗初始化就挂了,中间的各种幺蛾子都不受控。

    以上便是软件看门狗和硬件看门狗的作用和区别。

    若想了解更多,欢迎访问塔石物联网。

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 29,222
精华内容 11,688
关键字:

看门狗