永德盲人读屏软件无法运行,提示“rdscr4.exe遇到问题需要关闭”

永德盲人读屏软件无法运行,提示“rdscr4.exe遇到问题需要关闭”,第1张

1。你安装完成以后,到yongde60文件夹中找到rdscr4这个文件,复制到C:\Program Files\yongde文件夹中就可以了

2 安装以前,关掉防火墙,然后再安装,一般情况下都能用

补充,你用的系统可能是GHOST版的,建议你换一个版本的系统重装。

//不一定对,但愿对你有帮助.

#include<reg51.h>

#include<intrins.h>

#define uchar unsigned char

setb P3_0=P3^0

setb P3_4=P3^4

setb P3_5=P3^5

setb P3_7=P3^7

uchar cR2,cR3,cR4,cR5

void int_INT0(void) interrupt 0 using 0

{

R5=P3

cR2=R2

cR3=R3

cR4=R4

cR5=R5

P3_7=1

P3_0=1

P3_4=1

R2=0x0CB

R3=0x0CB

R4=0x0CB

R2--

while(R2!=0)

{

R3=0x0CB

R2--

if(R2)

{

R4=0x0CB

while(R4)

{

R4--

}

}

}

R5=cR5

R3=cR3

R4=cR4

R2=cR2

A=R5

P3=A

}

void int_it0(void) interrupt 1 using 0

{

P3_4=!P3_4

P3_5=!P3_5

R1--

}

void main

{

TMOD=0x12

TH0=0x2E

TL0=0x2E

R0=0x00

R1=0x02

P3_0=0

P3_4=1

P3_5=0

P3_7=0

EA=1

ET0=1

TX0=1

TR0=1

while(1)

{}

}

bootcore原名linuxBIOS,是一款开源的BIOS,代码可以从www coreboot org获得。

1. 整个BIOS入口地址src/cpu/x86/16bit/reset16.inc

a) 定义了一个跳转指令,跳转到entry16.inc的start里面,该跳转指令是5字节长度,而后面 *** 作数是一个16位的地址,用32位地址表示。

b) reset16.lds里面会定义reset16.inc里面的段被编译到0xfffffff0的位置,并限定_start的位置不能小于0Xffff0000.(末端64kb)的位置。是因为在16为模式下段界限为64kb,在16个字节的最后一个字节处置0值。

c) .int _start – (. + 2)这句话分析。前面定义的 *** 作码0xe9是一个段内跳转指令,后面这个定义的当然应该是跳转距离。_start-.这样写大家很容易理解,.代表当前指令位置。可这里有个小的偏差,(.)是当前这条汇编的点,实际应该是当前这条指令执行完得点,因此需要(.+2)。

2. src/cpu/x86/16bit/entry16.inc里面是16位代码段,进入保护模式。

a) 关中断

b) 保存eax的值,这里eax保存的是BIST之后的值。Intel文档中说明如下。(3A-9.1.2)

从这里我们知道如果eax值为0则表示通过了BIST测试,否则检测未能通过。

c) 清除出cr3使TLB失效,CR3寄存器是用来存放页表根目录的地址的。

d) 加载gdt

e) 设置cr0位

f)跳转进入保护模式

g) GDT在src/cpu/x86/32bit/entry32.inc里面定义

h) 跳转到ROM_CODE_SEG:__protected_start其中ROM_CODE_SEG就是下文提到的第二个GDT表项。

i) 。src/cpu/x86/32bit/entry32.inc里面定义了GDT表和__protected_start

j) GDT表中有三个表项:

i. 第一个是GDT表项的基地址和大小作为limit。

ii. 第二个基地址为0x00000000段界限为4GB的代码段。

iii. 第三个是与第二个相同地址的数据段。

k) __protected_start中把除了CS以外的数据段全部加载到第三个GDT表项上。

3. 接下来顺序执行进入__id_start(源文件在src/arch/x86/lib/id.inc)但是这个我们可以看到他的section里面定义是id类型,在对应的id.lds里面我们可以看到他被编译成.idsection,并存放到配置的指定位置,这里包含主板厂商,主板序列号等信息。这些信息是由config文件给出的因此,不同型号的主板将会得到不同的id.inc文件。

4. 如果配置允许使用SSE指令,则致力应该执行sse的初始化代码,只是配置cr4寄存器,允许SSE指令。(config)

If(CONFIG_SSE,y)则执行。

5. $(obj)/mainboard/$(MAINBOARDDIR)/bootblock.inc,该文件是由src/arch/x86/init/bootblock_simple.c或src/arch/x86/init/bootblock_normal.c经过ROMCC生成的,生成过程暂时不管。

a) 该文件包含一个头文件,头文件里面定义了CBFS系统中查找和执行模块的函数,还根据配置文件来决定是否有初始化南北桥的函数,如果没有就设置一个空函数代替。

b) 执行初始化南北桥芯片的函数。

c) 查找romstage的入口。

d) 跳转到romstage的入口。


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

原文地址: http://outofmemory.cn/yw/12075835.html

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

发表评论

登录后才能评论

评论列表(0条)

保存