苹果手机刷机错误2005怎么回事

苹果手机刷机错误2005怎么回事,第1张

出现此问题的原因为:设置问题造成的。

解决的方法和详细的 *** 作步骤如下:

1、第一步,在开始菜单中输入cmd,见下图,转到下面的步骤。

2、第二步,执行完上面的 *** 作之后,在d出的窗口中输入“notepad "%SystemRoot%\system32\drivers\etc\hosts"ipconfig /flushdnsexit”,然后单击“确定”按钮,见下图,转到下面的步骤。

3、第三步,执行完上面的 *** 作之后,删除开头没有“#”的所有内容,见下图,转到下面的步骤。

4、第四步,执行完上面的 *** 作之后,继续打开“运行”窗口,输入“
 inetcplcpl”命令,然后单击“确定”选项,见下图,转到下面的步骤。

5、第五步,执行完上面的 *** 作之后,在“
 Internet属性”界面中,单击“连接”选项卡,见下图,转到下面的步骤。

6、第六步,执行完上面的 *** 作之后,单击“局域网设置”按钮,见下图,转到下面的步骤。

7、第七步,执行完上面的 *** 作之后,取消勾选代理服务器,然后单击“确定”按钮即可,见下图。这样,就解决了这个问题了。

联想笔记本装系统找不到硬盘,解决办法:

1、按下电源按钮开机,在自检画面时按键盘的 F2 热键(注:部分新机型可能为 F1 热键)进入 BIOS 设置界面。

2、进入 BIOS 设置界面后,使用光标键选择“ Configuration ”菜单(有机型描述为 Advanced ),将 SATA Mode 更改为“ IDE ”(有机型描述为Compatiable)模式后回车。

3、按键盘的 F10 热键,然后选择“YES”回车确认保存退出,主机将自动重新启动。

4、最后按照正常的方式重新安装 *** 作系统,理论上即可解决无法找到硬盘的问题。

Hash,一般翻译做"散列",也有直接音译为"哈希"的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。
数学表述为:h = H(M) ,其中H( )--单向散列函数,M--任意长度明文,h--固定长度散列值。
在信息安全领域中应用的Hash算法,还需要满足其他关键特性:
第一当然是单向性(one-way),从预映射,能够简单迅速的得到散列值,而在计算上不可能构造一个预映射,使其散列结果等于某个特定的散列值,即构造相应的M=H-1(h)不可行。这样,散列值就能在统计上唯一的表征输入值,因此,密码学上的 Hash 又被称为"消息摘要(message digest)",就是要求能方便的将"消息"进行"摘要",但在"摘要"中无法得到比"摘要"本身更多的关于"消息"的信息。
第二是抗冲突性(collision-resistant),即在统计上无法产生2个散列值相同的预映射。给定M,计算上无法找到M',满足H(M)=H(M') ,此谓弱抗冲突性;计算上也难以寻找一对任意的M和M',使满足H(M)=H(M') ,此谓强抗冲突性。要求"强抗冲突性"主要是为了防范所谓"生日攻击(birthday attack)",在一个10人的团体中,你能找到和你生日相同的人的概率是24%,而在同一团体中,有2人生日相同的概率是117%。类似的,当预映射的空间很大的情况下,算法必须有足够的强度来保证不能轻易找到"相同生日"的人。
第三是映射分布均匀性和差分分布均匀性,散列结果中,为 0 的 bit 和为 1 的 bit ,其总数应该大致相等;输入中一个 bit 的变化,散列结果中将有一半以上的 bit 改变,这又叫做"雪崩效应(avalanche effect)";要实现使散列结果中出现 1bit 的变化,则输入中至少有一半以上的 bit 必须发生变化。其实质是必须使输入中每一个 bit 的信息,尽量均匀的反映到输出的每一个 bit 上去;输出中的每一个 bit,都是输入中尽可能多 bit 的信息一起作用的结果。
Damgard 和 Merkle 定义了所谓"压缩函数(compression function)",就是将一个固定长度输入,变换成较短的固定长度的输出,这对密码学实践上 Hash 函数的设计产生了很大的影响。Hash函数就是被设计为基于通过特定压缩函数的不断重复"压缩"输入的分组和前一次压缩处理的结果的过程,直到整个消息都被压缩完毕,最后的输出作为整个消息的散列值。尽管还缺乏严格的证明,但绝大多数业界的研究者都同意,如果压缩函数是安全的,那么以上述形式散列任意长度的消息也将是安全的。这就是所谓 Damgard/Merkle 结构:
在下图中,任意长度的消息被分拆成符合压缩函数输入要求的分组,最后一个分组可能需要在末尾添上特定的填充字节,这些分组将被顺序处理,除了第一个消息分组将与散列初始化值一起作为压缩函数的输入外,当前分组将和前一个分组的压缩函数输出一起被作为这一次压缩的输入,而其输出又将被作为下一个分组压缩函数输入的一部分,直到最后一个压缩函数的输出,将被作为整个消息散列的结果。
MD5 和 SHA1 可以说是目前应用最广泛的Hash算法,而它们都是以 MD4 为基础设计的。
1) MD4
MD4(RFC 1320)是 MIT 的 Ronald L Rivest 在 1990 年设计的,MD 是 Message Digest 的缩写。它适用在32位字长的处理器上用高速软件实现--它是基于 32 位 *** 作数的位 *** 作来实现的。它的安全性不像RSA那样基于数学假设,尽管 Den Boer、Bosselaers 和 Dobbertin 很快就用分析和差分成功的攻击了它3轮变换中的 2 轮,证明了它并不像期望的那样安全,但它的整个算法并没有真正被破解过,Rivest 也很快进行了改进。
下面是一些MD4散列结果的例子:
MD4 ("") = 31d6cfe0d16ae931b73c59d7e0c089c0
MD4 ("a") = bde52cb31de33e46245e05fbdbd6fb24
MD4 ("abc") = a448017aaf21d8525fc10ae87aa6729d
MD4 ("message digest") = d9130a8164549fe818874806e1c7014b
MD4 ("abcdefghijklmnopqrstuvwxyz") = d79e1c308aa5bbcdeea8ed63df412da9
MD4 ("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789") = 043f8582f241db351ce627e153e7f0e4
MD4 ("12345678901234567890123456789012345678901234567890123456789012345678901234567890") = e33b4ddc9c38f2199c3e7b164fcc0536
2) MD5
MD5(RFC 1321)是 Rivest 于1991年对MD4的改进版本。它对输入仍以512位分组,其输出是4个32位字的级联,与 MD4 相同。它较MD4所做的改进是:
1) 加入了第四轮
2) 每一步都有唯一的加法常数;
3) 第二轮中的G函数从((X ∧ Y) ∨ (X ∧ Z) ∨ (Y ∧ Z)) 变为 ((X ∧ Z) ∨ (Y ∧ ~Z))以减小其对称性;
4) 每一步都加入了前一步的结果,以加快"雪崩效应";
5) 改变了第2轮和第3轮中访问输入子分组的顺序,减小了形式的相似程度;
6) 近似优化了每轮的循环左移位移量,以期加快"雪崩效应",各轮的循环左移都不同。
尽管MD5比MD4来得复杂,并且速度较之要慢一点,但更安全,在抗分析和抗差分方面表现更好。
消息首先被拆成若干个512位的分组,其中最后512位一个分组是"消息尾+填充字节(1000)+64 位消息长度",以确保对于不同长度的消息,该分组不相同。64位消息长度的限制导致了MD5安全的输入长度必须小于264bit,因为大于64位的长度信息将被忽略。而4个32位寄存器字初始化为A=0x01234567,B=0x89abcdef,C=0xfedcba98,D=0x76543210,它们将始终参与运算并形成最终的散列结果。
接着各个512位消息分组以16个32位字的形式进入算法的主循环,512位消息分组的个数据决定了循环的次数。主循环有4轮,每轮分别用到了非线性函数
F(X, Y, Z) = (X ∧ Y) ∨ (~X ∧ Z)
G(X, Y, Z) = (X ∧ Z) ∨ (Y ∧ ~Z)
H(X, Y, Z) =X ⊕ Y ⊕ Z
I(X, Y, Z) = X ⊕ (Y ∨ ~Z)
这4轮变换是对进入主循环的512位消息分组的16个32位字分别进行如下 *** 作:将A、B、C、D的副本a、b、c、d中的3个经F、G、H、I运算后的结果与第4个相加,再加上32位字和一个32位字的加法常数,并将所得之值循环左移若干位,最后将所得结果加上a、b、c、d之一,并回送至ABCD,由此完成一次循环。
所用的加法常数由这样一张表T[i]来定义,其中i为164,T[i]是i的正弦绝对值之4294967296次方的整数部分,这样做是为了通过正弦函数和幂函数来进一步消除变换中的线性性。
当所有512位分组都运算完毕后,ABCD的级联将被输出为MD5散列的结果。下面是一些MD5散列结果的例子:
MD5 ("") = d41d8cd98f00b204e9800998ecf8427e
MD5 ("a") = 0cc175b9c0f1b6a831c399e269772661
MD5 ("abc") = 900150983cd24fb0d6963f7d28e17f72
MD5 ("message digest") = f96b697d7cb7938d525a2f31aaf161d0
MD5 ("abcdefghijklmnopqrstuvwxyz") = c3fcd3d76192e4007dfb496cca67e13b
MD5 ("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789") = d174ab98d277d9f5a5611c2c9f419d9f
MD5 ("12345678901234567890123456789012345678901234567890123456789012345678901234567890") = 57edf4a22be3c955ac49da2e2107b67a
参考相应RFC文档可以得到MD4、MD5算法的详细描述和算法的C源代码。
3) SHA1 及其他
SHA1是由NIST NSA设计为同DSA一起使用的,访问>中断源与中断请求
由图3.2可以看出,MCS-51系列单片机有5个中断源,它们是:外部中断INTO(P32) 、INTI(P3.3);定时器肼数器T0、Tl溢出中断;串行口的发送(TXD)和接收(RXD)中断源(只占1个中断源)。外部中断的中断请求标志位和T0、Tl的溢出中断请求标志位锁存在定时器/计数器控制寄存器TCON中,而串行口对应的中断请求标志位锁存在串行口控制寄存器SCON中。
1.定时器/计数器控制寄存器TCON
TCON为定时器/计数器控制寄存器,其字节映像地址为88H,可位寻址,它除了控制定时器/计数器T0、Tl的溢出中断外,还控制着两个外部中断源的触发方式和锁存两个外部中断源的中断请求标志。其格式如下:
TFl
TRl
TF0
TRO
IEl
ITl
IEO
IT0
TCON寄存器各位的含义如下:
IT0:外部中断INTO的中断触发方式选择位。
当IT0位清为0时,外部中断INTO为电平触发方式。在这种触发方式中,CPU在每一个机器周期的$5P2采样INTO(P3.2)引脚的输入电平,当采样到低电平时,置INT0的中请求标志位为1,采样到高电平清IE0位为0。在采用电平触发方式时,外部中断源(输入到INTO,即P3.2引脚)上的必须保持低电平有效,直到该中断被CPU响应,同时在该中断服务程序执行结束之前,外部中断源的有效信号必须被清除,否则将产生另一次中断。为了保证CPU能正确采样电平状态,要求外部中断源INTO有效的低电平信号至少要维持一个机器周期以上。
当IT0位置为1时,外部中[新IN-T0为边沿触发方式。在这种触发方式中,CPU在每个机器周期的$5P2采样INTO(P3.2)引脚上的输入电平。如果在相继的两个机器周期,一个周期采样到INTO为高电平,而接着的下一个周期采样到低电平,则置INTO的中断请求标志位IE0为1,即当IE0位为l时,表示外部中断INTO正在向CPU请求中断,直到该中断被CPU响应时,才由硬件自动将IE0位清为0。因为CPU在每一个机器周期采样一次外部中断源输入引脚的电平状态,因此采用边沿触发方式时,外部中断源输入的高电平信号和低电平信号时间必须保持在一个机器周期以上,才能保证CPU检测到此信号由高到低的负跳变。
IE0:外部中断:INT0的中断请求标志位。当IE0位为0时,表示外部中断源INT0没有向CPU请求中断;当IE0位为l时,表示外部中断INTO正在向CPU请求中断,且当CPU响应该中断时由硬件自动对IE0进行清0。
1T1:外部中断INTO的中断触发方式选择位。功能与ITo相同。
IEl:外部中断INTO的中断请求标志位。功能与IE0相l司。
TR0:定时器/计数器T0的启动标志位。当TR0位为0时,不允许T0计数工作;当TRO位为l时,允许T0定时或计数工作。
TF0:定时器/计数器T0的溢出中断请求标志位。在定时器/计数器T0被允许计数后,从初值开始加l计数,当产生计数溢出时由硬件自动将TF0位置为1,通过TF0位向CPU申请中断,一直保持到CPU响应该中断后才由硬件自动将TF0位清为0。当TF0位为0时,表示T0未计数或计数未产生溢出。当T0工作在不允许中断时,TF0标志可供程序查询。
TRl:定时器/计数器Tl的启动标志位。功能与TR0相l司。
TFl:定时器/计数器Tl的溢出中断请求标志位。功能与TF0相I司。
2.串行口控制寄存器SC,ON
’SCON为串口控制寄存器,其字节映像地址为98H,也可以进行位寻址。串口的接收和发送数据中断请求标志位(R1、TI)被锁存在串口控制寄存器SCON中,其格式如下:
SM0
SMl
SM2
REN
TB8
RB8
TI
RI
SCON寄存器各位的含义如下:
R1:串口接收中断请求标志位。当串行以一定方式接收数据时,每接收完一帧数据,由硬件自动将Rl位置为1。而Rl位的清0必须由用户用指令来完成。
T1:串l3发送中断请求标志位。当串口以一定方式发送数据时,每发送完一帧数据,由硬件自动将Tl位置为l。而Tl位的清0也必须由用户用指令来完成。
注意:在中断系统中,将串行口的接收中断Rl和发送中断Tl经逻辑或运算后作为内部的一个中断源。当CPU响应串口的中断请求时,CPU并不清楚是由接收中断产生的中断请求还是由发送中断产生的中断请求,所以用户在编写串口的中断服务程序时,在程序中必须识别是RI还是Tl产生的中断请求,从而执行相应的中断服务程序。
SCON其他位的功能和作用与串行通信有关,将在第6章中介绍。
在上述的特殊功能寄存器中的所有中断请求标志位,都可以由软件加以控制,即用软件置位或清0。当某位置位时,就相当于该位对应的中断源向CPU发出中断请求,如果清。就撤销中断请求。
3.2.2中断允许控制
在计算机中断系统中有两种不同类型的中断:一类为非屏蔽中断,另一类为可屏蔽中断。对于非屏蔽中断,用户不能用软件方法加以禁止,一旦有中断请求,CPU就必须予以响应。而对于可屏蔽中断,用户则可以通过软件方法来控制它们是否允许CPU去响应。允许CPU响应某一个中断请求称为中断开放(或中断允许),不允许CPU响应某一个中断请求称为中断屏蔽(或中断禁止)。
MCS一51系列单片机的5个中断源都是可屏蔽中断。由图3.2可知,CPU对中断源的中断开放或中断屏蔽的控制是通过中断允许控制寄存器IE来实现的。IE的字节映像地址为0A8H,既可以按字节寻址,也可以按位寻址。当单片机复位时,IE被清为0。
通过对IE的各位的置1或清0 *** 作,实现开放或屏蔽某个中断,也可以通过对EA位的清O来屏蔽所有的中断源。IE的格式如下.
EA
----
-----
ES
ET1
EX1
ETO
EX0
IE寄存器各位的含义为:
EA:总中断允许控制位。当EA位为0时,屏蔽所有的中断;当EA位为l时,开放所有的中断。
ES:串口中断允许控制位。当ES位为0时,屏蔽串口中断;当ES位为l且EA位也为1时,开放串口中断。
ETl:定时器/计数器Tl的中断允许控制位。当ETl位为0时,屏蔽Tl的溢出中断;当ETl位为l且EA位也为1时,开放Tl的溢出中断。
EXl:INT1的中断允许控制位。当EXl位为0时,屏蔽INTl;当EXl位为l且EA位也为1时,开放丽。
ET0:定时器/计数器T0的中断允许控制位。功能与ETl相同。
EX0:INT0的中断允许控制位。功能与EXl相同。比如要开放INTl和Tl的溢出中断,屏蔽其他中断,则对应的中断允许控制字为:l00011008,即8CH。只要将这个结果送人IE中,中断系统就按所设置的结果来管理这些中断源。形成这个控制结果的方法可以对IE按字节 *** 作,也可以按位 *** 作。
按字节 *** 作形式按位 *** 作形式
SETB EXl
MOV IE,#8CH SETB ETl
 SETB EA
思考题3.1:如果要开放外部中断0和串口的中断,而屏蔽其他中断的控制字是什么如何来实现这个控制结果呢
3.2.3中断优先权管理
在中断系统中,要使某一个中断被优先响应的话,就要依靠中断优先权控制。MCS-51系列单片机对所有中断设置了两个优先权,每一个中断请求源都可以编程设置为高优先权中断或低优先权中断,从而实现二级中断嵌套。为了实现对中断优先权的管理,在MCS一51内部提供了一个中断优先级寄存器IP,其字节地址为088H,既可以按字节形式访问,又可以按位的形式访问。其格式如下:

-------
--------
PS
PTl
PXl
PT0
PXO
IP寄存器各位的含义如下:
PX0、PT0、PXl、PTl和PS分别为INTO、TO、INT1、Tl和串口中断优先级控制位。当相应的位为0时,所对应的中断源定义为低优先级,相反则定义为高优先级。
比如要将T0定义为高优先级,使CPU优先响应其中断,其他中断均定义为低优先级,对应的优先级控制字为O00000108,即02H。只要将这个控制字送人IP中,CPU就优先响应TO产生的溢出中断,并将其他中断按低优先级中断处理。具体 *** 作形式如下:
按字节 *** 作形式  按位 *** 作形式
MOV IP,#02HSETB PT0
在同一个优先级中,各中断源的优先级别由一个内部的硬件查询序列来决定,所以在同级的中断中按硬件查询序列也确定了一个自然优先级,其从高到低的优先级排列如下:
INTO—TO—INT1—Tl--串口(RI、TI)
 按中断优先权设置后,响应中断的基本原则是:
.若多个中断请求同时有效,CPU优先响应优先权最高的中断请求。
.同级的中断或更低级的中断不能中断CPU正在响应的中断过程。
.低优先权的中断响应过程可以被高优先权的中断请求所中断,CPU会暂时中止当前低优先权的中断过程,而优先响应高优先权中断。等到高优先权中断响应结束后再继续响应原低优先权的中断过程,形成中断的嵌套。为了实现上述功能和基本原则,在MCS.51系列单片机中断系统的内部设置了两个不可寻址的优先级触发器,一个是指出CPU是否正在响应高优先权中断的高优先级触发器,另一个是指出CPU是否正在响应低优先权中断的低优先级触发器。当高优先级触发器状态为l时,屏蔽所有的中断请求;当低优先级触发器状态为1时,屏蔽所有同级的中断请求而允许高优先权中断的中断请求。
MCS一51系列单片机复位后,特殊功能寄存器IE、IP的内容均为0,由用户的初始化程序对IE、IP进行初始化,开放或屏蔽某些中断并设置它们的优先权。
3.2.4中断响应
单片机一旦工作,并由用户对各中断源进行使能和优先权初始化编程后,MCS-51系列单片机的CPU在每个机器周期顺序检查每一个中断源。那么,在什么情况下CPU可以及时响应某一个中断请求呢若CPU响应某一个中断请求,它又是如何工作的呢
1.中断响应条件
单片机的CPU在每个机器周期的最后一个状态周期采样并按优先权设置的结果处理所有被开放中断源的中断请求。一个中断源的请求要得到响应,必须满足一定的条件。
 (1)CPU正在处理相同的或更高优先权的中断请求。这种情况下只有当前中断响应结
束后才可能响应另一个中断请求。
(2)现行的机器周期不是当前所执行指令的最后一个机器周期。此时只有在当前指令执行结束周期的下一个机器周期才可能响应中断请求。
(3)正在执行的指令是中断返回指令(RETI)或者是对IE、IP的写 *** 作指令。在这种情况下,只有在这些指令执行结束并至少再执行一条其他指令后才可能响应中断请求。如果上述条件中有一个存在,CPU将自动丢弃对中断查询的结果;若一个条件也不存在,则将在紧接着的下一个机器周期执行中断查询的结果,响应相应的中断请求。
2.中断响应过程
如果某一个中断被开放,且中断请求符合响应条件,CPU会及时响应该中断请求,并按下列过程进行处理:
(1)置相应的优先级触发器状态为1,指明了CPU正在响应的中断优先权的级别,并通过它屏蔽所有同级或更低级的中断请求,允许更高级的中断请求。
(2)执行一条硬件子程序调用,清相应的中断请求标志位为0(R1、Tl和电平触发的外部中断除外)。
(3)保护断点。即将被中断程序的断点位置(Pc的值)压人堆栈保存起来。
(4)将被响应的中断源的中断服务程序入口地址送程序计数器PC。各中断源的中断服务程序入口地址的分配情况如表l.4所示。
(5)执行相应的中断服务程序。当CPU执行完中断服务程序中的中断返回指令后,清相应的优先级触发器为0,然后恢复断点,即将保存在堆栈中的程序计数器PC的值再d给PC,使CPU再继续执行原来被中断的程序。
3.中断响应的时间
在MCS.51系列单片机中的外部中断请求信号在每一个机器周期的第5个状态周期的第2个时钟脉冲被采样并锁存到相应的中断请求标志中,这个状态等到下一个机器周期才被查询。如果中断被开放,并符合响应条件,CPU接着执行一个硬件子程序调用指令以转到相应的中断服务程序入口,该调用指令需要2个机器周期,所以从外部产生中断请求到CPU开始执行中断服务程序的第l条指令之间,最少需要3个完整的机器周期。如果中断请求被阻止,则需要更长的时间。如果已经在处理同级或更高级中断,额外的等待取决于中断服务程序的处理过程。如果正处理的指令没有执行到最后的机器周期,即使是需要时间最长的乘法或除法指令,所需的额外等待时间不会超过3个机器周期;如果是CPU正在执行中断返回指令RETl或对IE、IP的写 *** 作指令,加上另外一条指令的执行时间,额外的等待时间不会多于5个机器周期。所以在单一中断系统中,外部中断响应时间总是在3~8个机器周期。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13460683.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-11
下一篇 2023-08-11

发表评论

登录后才能评论

评论列表(0条)

保存