精华内容
下载资源
问答
  • 在启动pc机的过程中
    千次阅读
    2017-05-13 20:08:46

    本文转载自《朱有鹏老师嵌入式linux核心课程》的《第二部分uboot和系统移植》

    1.PC机的启动过程

    (1)典型的PC机的部署(部署指的是没有上电时候的样子)

    • BIOS程序(按F12可以进入,用来设置启动顺序等等的代码)部署在PC机主板上(随主板出厂时已经预制了),(如果bios损坏 则只能将主板拆下来返厂维修了。换句话说如果你买了一个新的电脑 ,这个新的电脑可能没有操作系统,但是一定会带BIOS,如果没有BIOS则根本无法装系统。 我们能够装系统,就是通过BIOS)。
    • 操作系统部署在硬盘上,这个操作系统是自己装的。
    • 内存在掉电时无作用。
    • CPU在掉电时不工作。

    (2)启动过程:

    PC上电后先执行BIOS程序(实际上PC的BIOS就是NorFlash),(PC能够保证PC上电后,BIOS的程序能够送到CPU中去执行,也就是说程序不用先拷贝到内存中,这种执行就叫做代码的原地执行,换句话说就是代码直接在flash中被CPU读取并送到CPU中,norflash这种flash支持原地执行代码。)BIOS程序负责初始化DDR内存,负责初始化硬盘, 然后从硬盘上将OS镜像读取到DDR中,然后跳转到DDR中去执行OS直到启动(OS启动后BIOS就无用了)。(这里面有一个问题,BIOS是怎么知道用户使用的是什么牌子的DDR和硬盘的呢? 可能不同硬盘以及DDR的初始化程序不一样啊?解决方法:因为市场上的DDR和硬盘的启动步骤大都标准化了,另外在BIOS程序中可以将市面上所有硬盘和DDR的启动步骤都兼容。)

    2.典型嵌入式linux系统启动过程

    (1)嵌入式系统的部署和启动都是参考PC机的。只是设备上有一些差别

    (2)典型嵌入式系统的部署:

    • uboot程序部署在Flash上(这里的flash指的是能作为启动设备的Flash,不同的SOC支持的启动设备Flash不同,以S5PV210为例,请看S5PV210_iROM_ApplicationNote_Preliminary_20091126.pdf,里面的第9页就说明了支持哪些类型的flash启动)。
    • OS部署在FLash(嵌入式系统中用Flash代替了硬盘)上,需要说明的是uboot和OS可以部署在同一个flash中,也可以不在同一个flash中,现在为了节省成本,逐渐倾向于将uboot和OS放到同一个flash中。
    • 内存在掉电时无作用。
    • CPU在掉电时不工作。

    (3)启动过程:

    嵌入式系统上电后先加载执行uboot、然后uboot负责初始化DDR,初始化Flash, 然后将OS从Flash中读取到DDR中,然后启动OS(OS启动后uboot就无用了)。

    总结:嵌入式系统和PC机的启动过程几乎没有两样,只是BIOS成了uboot,硬盘成了Flash。


    3.android系统启动过程

    (1)android系统的启动和linux系统(前面讲的典型的嵌入式系统启动)几乎一样。

        几乎一样意思就是前面完全一样,只是在内核启动后加载根文件系统后不同了。

    (2)可以认为启动分为2个阶段:

       第一个阶段是uboot到OS启动;

       第二个阶段是OS启动后到rootfs加载到命令行执行;        

     android的启动和linux的差别在第二阶段。


    总结:uboot到底是干嘛的
    (1)uboot主要作用是用来启动操作系统内核。(操作系统内核无法自己启动自己,需要有人帮忙,这个人就是uboot)。
    (2)uboot还要负责部署整个计算机系统。(通俗的讲就是把uboot、OS和根文件系统放到flash中的什么 位置)。
    (3)uboot中还有操作Flash等板子上硬盘的驱动 (如果没有这些驱动是没法将OS和根文件系统部署到flash中的)。

    (4)uboot还得提供一个命令行界面供人来操作。(其实uboot中没有这个部分也是可以启动内核,但是有了这个部分就能够更好的部署内核,可以更好的设置启动内核的参数)。



    uboot必须解决哪些问题

    (1)自身可开机直接启动:

    • 由于不同硬件的设计不同,因此必须进行硬件相对应的代码级别的更改和移植。才能够保证可以从相应的启动介质启动(不同SOC支持的启动介质是不一样的,这个需要看手册查询)。uboot中第一阶段的start.S文件中具体处理了这一块。

    (2)能够引导操作系统内核启动并给内核传参

    • uboot的终极目标就是启动内核。
    • linux内核在设计的时候,设计为可以被传参。也就是说我们可以在uboot中事先给linux内核准备一些启动参数放在内存中特定位置然后传给内核,内核启动后会到这个特定位置去取uboot传给他的参数,然后在内核中解析这些参数,这些参数将被用来指导linux内核的启动过程(这样linux的启动就是活的了,否则无法设置,linux启动就是死的,如果要想再次设置就要重新编译,增加复杂性)。

    (3)能提供系统部署功能

    • uboot必须能够被人借助而完成整个系统(包括uboot、kernel、rootfs等的镜像)在Flash上的烧录下载工作。

    (4)能进行soc级和板级硬件管理

    uboot中实现了一部分硬件的控制能力(uboot中初始化了一部分硬件),因为uboot为了完成一些任务必须让这些硬件工作。

    • 譬如uboot要实现刷机必须能驱动iNand。
    • 譬如uboot要在刷机时LCD上显示进度条就必须能驱动LCD。
    • 譬如uboot能够通过串口提供操作界面就必须驱动串口。
    • 譬如uboot要实现网络功能就必须驱动网卡芯片。

    (5)uboot的“生命周期”

    • uboot的生命周期就是指:uboot什么时候开始运行,什么时候结束运行。uboot本质上是一个裸机程序(是个while1)(不是操作系统)},一旦uboot开始SoC就会单纯运行uboot(意思就是uboot运行的时候别的程序是不可能同时运行的),一旦uboot结束运行则无法再回到uboot(所以uboot启动了内核后uboot自己本身就死了,要想再次看到uboot界面只能重启系统。重启并不是复活了刚才的uboot,重启只是uboot的另一生)
    • uboot的入口和出口。uboot的入口就是开机自动启动,uboot的唯一出口就是启动内核。uboot还可以执行很多别的任务(譬如烧录系统),但是其他任务执行完后都可以回到uboot的命令行继续执行uboot命令,而启动内核命令一旦执行就回不来了。

    总结:一切都是为了启动内核










    更多相关内容
  • PC启动流程 前面的文章电脑启动过程小结是从大的节点来分析的,这里再从程序的角度来做下总结: 1、上电,CPU自动执行BIOS代码。 2、BIOS实现外围设备自检,提供服务(显示、键盘)调用,然后从磁盘读取MBR,...

    本文引用《Linux0.11 引导启动与初始化》,这里向作者致谢,总结的不错。

    前言

    本文并不会特别详细的说明PC开机的完整流程,因为整个过程涉及到的知识点太多了,一篇文章也讲不好,我们沿着《x86汇编语言:从实模式到保护模式》的顺序来分析PC的开机流程,然后以linux0.11为例进行分析。这里要向《x86汇编语言:从实模式到保护模式》的作者致敬,写的太棒了。

    PC启动流程

    在前面的文章电脑启动过程小结中是从大的节点来分析的,这里再从程序的角度来做下总结:

    • 1、上电,CPU自动执行BIOS代码。
    • 2、BIOS实现外围设备自检,提供服务(显示、键盘)调用,然后从磁盘中读取MBR,即主引导记录。
    • 3、MBR的主要工作有3点:由实模式到保护模式的准备(GDT)、切换到保护模式、从硬盘中加载操作系统。注意:之前的代码都是在实模式下进行的,不是在保护模式
    • 4、MBR还会开启内存分页,我们基本上可以认为,没有内存分页功能的保护模式,意义并不大,因为操作系统支持多任务的前提条件,最核心的就是对于内存的管理,也就是需要 内存分页机制。
    • 5、操作系统加载到内存后,CPU控制权交给操作系统,操作系统在CPU保护模式下运行,通过内存分页机制来管理内存,给应用程序分配线性地址、内存空间,进而实现应用程序的加载和调度。
    • 6、操作系统通过专业的任务调度算法,实现任务的动态加载和调度。

    我们不妨将intel的CPU当成一个功能强大的单片机来看,作为程序员,对于单片机的开发,也涉及到两种开发方式:裸机开发和基于操作系统开发。对于PC CPU来讲,它就是为了多任务而生的,所以不会被拿来做裸机开发,但是,但是,但是,即便是基于操作系统开发,那么对于CPU刚刚启动时,对于CPU是不可能上来就直接跑操作系统的,这里面有个空档期,就是CPU上电,到操作系统运行之间的空档期,这个空档期本质上就是裸机跑程序,实现各种的准备工作。
    在这里插入图片描述
    上图中就代表了这个空档期的工作,在没有开启内存分页功能之前,对于物理内存的管理,还是相对简单的,但是不开启内存分页机制,linux和windows都是无法发挥他们的强大管理能力的。

    Linux0.11启动流程

    Linux0.11的启动流程其实也是符合上图中的描述的,接下来我们就简单的分析一下Linux0.11的启动流程。

    1、执行程序顺序

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    小结

    (1)先有CPU的架构,实模式、保护模式等,然后再有操作系统的,当然CPU的架构设计也会考虑多用户、多进程设计需求,可以简单的说,CPU提供了一座大楼的框架,而操作系统基于这个框架做了各种定制化装修,对于应用程序来说,因为有了操作系统,不需要研究和看到CPU框架。
    (2)可以说,操作系统将CPU的保护模式用到了极致,保护模式也是操作系统的根基之一。
    (3)操作系统实现多任务加载、运行、调度,最核心的条件是基于CPU提供的保护模式和内存分页管理,保护模式使得多程序管理更加安全,内存分页 管理带来了虚拟内存的概念,实现内存利用最大化,少量的内存,就能实现多程序共用。

    展开全文
  • 我们知道cpu计算机系统除了能够执行指令,进行运算以外,还应该能对外部设备进行控制,接收它们的输入,向它们进行输出,也就是说cpu除了具有运算能力外,还要有I/O(Input/Output,输入输出)能力。通过以前的学习...

    我们知道cpu在计算机系统中除了能够执行指令,进行运算以外,还应该能对外部设备进行控制,接收它们的输入,向它们进行输出,也就是说cpu除了具有运算能力外,还要有I/O(Input/Output,输入输出)能力。通过以前的学习我们知道,PC系统的接口卡和主板上装有各种接口芯片。这些外设接口芯片的内部有若干寄存器,cpu将这些寄存器当作端口来访问。

    外设的输入不直接送入内存和cpu,而是送入相关的接口芯片的端口中,cpu向外设的输出也不是直接送入外设,而是先送入端口中,再由相关的芯片送到外设。cpu还可以向外设输出控制命令,而这些控制命令也是先送到相关芯片的端口中,然后再由相关的芯片根据命令对外设实施控制。可见cpu通过端口和外部设备进行联系。

    至此,我们知道了外设的输入被存放在端口中,可是外设的输入随时都有可能到达,cpu如何及时的知道并进行处理呢?这就用到了我们今天的主角-中断机制。cpu提供中断机制来满足这种需要,当cpu的内部有需要处理的事情发生时,将产生中断信息,引发中断过程,这种中断信息来自cpu内部,还有一种中断信息,来自于cpu外部,当cpu外部有需要处理的事情发生的时候,比如说,外设的输入到达,相关芯片将向cpu发出相应的中断信息。cpu在执行完当前指令后,可以检测到发送过来的中断信息,引发中断过程,处理外设的输入。

    PC机处理键盘输入的过程如下:

    1、键盘输入

    键盘上的每一个按键相当于一个开关,键盘中有一个芯片对键盘上的每一个键的开关状态进行扫描,按下一个键时,开关接通,
    该芯片就产生一个扫描码,扫描码说明了按下的键在键盘上的位置。扫描码被送入主板上的相关芯片的寄存器中,该寄存器的
    端口地址为60h。松开按下的键时,也产生一个扫描码, 扫描码说明了松开的键在键盘上的位置,松开按键时产生的扫描码也
    被送入60端口中。一般我们将按下一个键时产生的扫描码称为通码,松开一个按键产生的扫描码称为断码。扫描码长度为一个
    字节,通码的第七位为0,断码的第七位为1,即断码 = 通码 + 80h。

    2、引发9号中断

    键盘的输入到达60端口时,相关的芯片就会向cpu发出中断类型码为9的可屏蔽中断信息。cpu检测到改中断信息后,如果IF = 1
    ,则响应中断,引发中断过程,转去执行int 9中断例程。

    3、执行int9中断例程

    BIOS提供了int 9中断例程,用来进行基本的键盘输入处理,主要的动作如下:
    (1)读出60端口中的扫描码;
    (2)如果是字符键的扫描码,将该扫描码和它所对应的字符码即ASCII码送入内存中的BIOS键盘缓冲区;如果是控制键(如ctrl)
    和切换键(如CapsLock)的扫描码,则将其转变为状态字节(用二进制位记录控制键和切换键状态的字节)写入内存中存储 状态字节的单元;
    (3)对键盘系统进行相关的控制,比如说,向相关芯片发出应答信息。
    BIOS键盘缓冲区是系统启动后,BIOS用于存放int 9号中断例程所接受的键盘输入的内存区。该内存区可以存储15个键盘输入,因为int 9中断例程除了接受扫描码外,还要产生和扫描码对应的字符码,所以在BIOS键盘缓冲区中,一个键盘输入用一个字单元存放,高位字节存放扫描码,低位字节存放字符码。
    0040:17单元存储键盘状态字节,该字节记录了控制键和切换键的状态。键盘状态字节各位记录的信息如下:

    由以上内容我们知道,键盘输入的处理过程:
    1、键盘上的芯片产生扫描码,2、扫描码被送入60端口,3、引导9号中断;4、cpu执行int9中断例程处理键盘输入
    在上面的过程中,前3步都是由硬件系统完成的。我们能改变的只有int 9中断处理程序。我们可以重新编写int9中断例程。按照
    自己的意图来处理键盘的输入,因为一个完整的键盘输入的处理要涉及一些硬件细节,针对这种情况,我们可以在自己编写的中
    断例程中调用BIOS的int9中断例程帮我们处理。

    编程:在屏幕中间依次显示"a"~“z”,并可以让人看清。在显示的过程中,按下Esc键后,改变显示的颜色。
    依次显示"a"~"z"的代码如下:

    assume cs:code
    code segment
    	start:mov ax, 0b800h
    		  mov es, ax
    		  mov ah, 'a'
    	  s1: mov es:[160*12+40*2], ah
    		  inc ah
    		  cmp ah, 'z'
    		  jna s1
    		  mov ax, 4c00h
    		  int 21h
    code ends
    end start 
    

    在上面代码的执行过程中,我们无法看清屏幕上字符的变化,因为cpu执行太快导致字符切换过快,因此我们想办法在每显示一个
    字符后延时一段时间,让人看清后再显示下一个字符,这里我们实现一个延时的子程序供主程序调用,代码如下:

       delay: push ax
    		  push dx
    		  
    		  mov ax, 0
    		  mov dx, 1000h	;//cpu循环执行10000 000h次
    	   s2:sub ax, 1
    		  sbb dx, 0
    		  cmp ax, 0
    		  jne s2
    		  cmp dx, 0
    		  jne s2
    		  pop dx
    		  pop ax
    		  ret
    

    那如何改变颜色呢?
    键盘输入到达端口后,就会引发9号中断,cpu转去执行int9中断例程。我们可以编写int9中断例程,功能如下:
    (1)从60端口中读出键盘的输入;
    (2)调用BIOS的int9中断例程,处理其他硬件细节;
    (3)判断按键是否为Esc的扫描码,如果是,则改变显示的颜色后返回;如果不是则直接返回。
    下面我们分步实现以上步骤

    1、从60端口中读出键盘的输入
    in al, 60h
    
    2、调用BIOS的int9中断例程

    有一点我们要注意,在我们编写好int9中断例程后,主程序必须将中断向量表中的int9中断例程的入口地址改为我们新写的中断
    处理程序的入口地址,但是在新的中断处理程序中调用原来的int9中断例程时,中断向量表中的int9号中断例程的入口地址已不
    是原来的int9中断例程的地址,所以我们不能使用int指令直接调用。
    要能在我们新写的中断例程中调用原来的中断例程,就必须在将中断向量表中的中断例程的入口地址改为新地址之前,将原来的
    入口地址保存起来,这样在需要调用的时候才能找到。

    保存了入口地址后,该如何调用呢?
    当然不能使用指令int9来调用,我们可以使用别的指令来对int指令进行模拟,从而实现对中断例程的调用。
    我们知道,int指令在执行的时候,cpu进行下面的工作。
    (1)取中断类型码n;
    (2)标志寄存器入栈
    (3)IF=0,TF=0;
    (4)CS、IP入栈
    (5)(IP)=(n4), (CS=n4+2)
    取中断类型码是为了定位中断例程的入口地址,在我们自己写的中断例程中已知道地址,因此不需要做第一步,假设要调用的中断
    例程的入口地址被保存在ds:0和ds:2单元,我们将用以下步骤来模拟int过程
    (1)标志寄存器入栈
    (2)IF=0,TF=0;
    (3)CS、IP入栈
    (4)(IP)=(ds16+0), (CS=ds16+2)
    注意到第三步和第四步的功能和call dword ptr ds:[0]的功能一样,call dword ptr ds:[0]的功能也是
    push cs, push ip, (IP)=(ds16+0), (CS=ds16+2),所以int的模拟过程变为:
    (1)标志寄存器入栈
    (2)IF=0,TF=0
    (3)call dword ptr ds:[0]
    对于上面步骤一可用pushf实现。对于步骤二可用下面的指令来实现

    pushf
    pop bx
    and bh, 11111100B
    push bx
    popf	;IF=0, TF=0
    ;CS, IP入栈,IP = n*4, CS = n*4+2
    call dword ptr ds:[0]	;对int指令进行模拟,调用原来的int 9中断例程
    
    3、如果是Esc按键的扫描码,改变显示的颜色后返回

    如何改变现实的颜色呢?
    显示的位置是在屏幕的中间,即第12行40列,显存中的偏移地址为:16012+402。所以字符的ASCII码要送入段地址b800h,偏移
    地址16012+402处。而段地址b800h偏移地址16012+402+1处时字符的属性,我们只要改变此处的数据就可以改变显示字符的颜色
    该程序的最后一个问题是,要在程序返回前,将中断向量表中的int9号中断例程的入口地址恢复为原来的地址。否则程序返回后,
    别的程序将无法使用键盘。
    经以上分析,完整源码如下:

    assume cs:code
    
    stack segment
    	db 128 dup (0)
    stack ends
    
    data segment
    	dw 0, 0
    data ends
    
    code segment
    	start:mov ax, stack
    		  mov ss, ax
    		  mov sp, 128
    		  
    		  mov ax, data
    		  mov ds, ax
    		  
    		  ;保存原有int 9号中断处理程序的入口地址
    		  mov ax, 0
    		  mov es, ax
    		  push es:[9*4]
    		  pop ds:[0]
    		  push es:[9*4+2]
    		  pop ds:[2]
    		  
    		  mov word ptr es:[9*4], offset int9
    		  mov es:[9*4+2], cs
    		  
    		  mov ax, 0b800h
    		  mov es, ax
    		  mov ah, 'a'
    	  s1: mov es:[160*12+40*2], ah
    		  call delay
    		  inc ah
    		  cmp ah, 'z'
    		  jna s1
    		  
    		  ;为了不影响后续的键盘输入处理,需要将int 9号中断处理程序的入口地址恢复为原来的地址
    		  push ds:[0]
    		  pop es:[9*4]
    		  push ds:[2]
    		  pop es:[9*4+2]
    		  mov ax, 4c00h
    		  int 21h
    		  
    		  
    	delay:push ax
    		  push dx
    		  
    		  mov ax, 0
    		  mov dx, 1000h	;//cpu循环执行10000 000h次
    	   s2:sub ax, 1
    		  sbb dx, 0
    		  cmp ax, 0
    		  jne s2
    		  cmp dx, 0
    		  jne s2
    		  pop dx
    		  pop ax
    		  ret
    		  
    	;-----------新的int 9中断例程-------------	  
    	int9: push ax
    		  push bx
    		  push es
    		  
    		  in al, 60h	;从端口60h读出键盘的输入
    		  pushf	;标志寄存器入栈
    		  
    		  ;设置IF = 0, TF = 0
    		  pushf
    		  pop bx
    		  and bh, 11111100B
    		  push bx
    		  popf
    		  ;CS, IP入栈,IP = n*4, CS = n*4+2
    		  call dword ptr ds:[0]	;对int指令进行模拟,调用原来的int 9中断例程
    		  
    		  cmp al, 1	;esc键的扫描码为1
    		  jne int9ret
    		  
    		  mov ax, 0b800h
    		  mov es, ax
    		  inc byte ptr es:[160*12+40*2 + 1]	;属性值加1改变颜色
    		  
    		  
      int9ret:pop es
    		  pop bx
    		  pop ax
    		  iret
    code ends
    end start 
    

    程序运行图示如下:
    在这里插入图片描述
    注意,本文中所有关于键盘的程序,因为要直接访问真实的硬件,则必须在DOS实模式下运行。在Windows2000的DOS方式下运行,
    会出现一些和硬件工作原理不符合的现象。

    展开全文
  • 固件的初始化,尝试启动CPU 电源刚接通后,处理器处于实模式(real mode)并且禁止了内存分页机制,且只有1MB的可用存储地址空间。 启动时寄存器的初始化,保存着CPU执行指令地址的地址寄存器(EIP)指向的是0xFFFFFFF0...
    1. 固件的初始化,尝试启动CPU
    2. 电源刚接通后,处理器处于实模式(real mode)并且禁止了内存分页机制,且只有1MB的可用存储地址空间。
    3. 启动时寄存器的初始化,保存着CPU执行指令地址的地址寄存器(EIP)指向的是0xFFFFFFF0(4GB存储空间的最后16字节),这个地址被称为reset vector,是一条到BIOS程序入口的跳转指令。

    在这里插入图片描述

    1. 执行BIOS程序,进行通电自检(Power-on Self Test – POST)过程以检测计算机的众多组件。显卡->内存->其它设备。整理所有可用的资源——中断、内存大小、PCI设备的I/O端口。
    2. 完成POST之后,BIOS需要在硬盘、光驱、软驱等地方搜寻操作系统内核的位置以启动操作系统。
    3. 若是从硬盘启动,则将主引导记录(硬盘的第一个扇区)载入到内存地址0x7c00的位置并且跳转到这一地址开始执行MBR中的指令。

    在这里插入图片描述

    (此图为第六步中的MBR示意图)
    在这里插入图片描述

    • 黄色部分(000H-1B7H):引导分区
      作用:检测最后两个字节是否为“55AA”,检测是否有活动分区,若有,读入活动分区的引导扇区地址,判断其是否合法,若合法,将控制权交给操作系统.每个磁盘的引导程序都不是一样的,它在格式化磁盘的时候由格式化程序自动产生.

    • 绿色部分(1B8H-1BBH):磁盘签名
      作用:Windows系统在对磁盘进行初始化的时候写入的标签,不可或缺,Windows依靠它来识别硬盘.若丢失,Windows认为硬盘没有初始化.

    • 橙色部分(1BEH-1FDH):分区表
      作用:管理磁盘分区,丢失或损坏都会导致分区丢失或损坏.

    展开全文
  • 单片机与PC机串口通信编程

    千次阅读 2021-01-19 21:19:20
    单片机与PC机串口通信编程 实验目的 利用PROTUES仿真软件、串口调试助手、虚拟串口,搭建单片机与PC通信仿真平台,熟悉单片机串口的配置及与PC机的通信方法。 实验目的 1、PROTUES仿真软件搭建实验电路(补充电源、...
  • 计算机启动的基本过程详解

    千次阅读 2021-01-13 19:36:58
    计算机启动的基本过程详解 对于一台安装了Linux系统的主机来说,当用户按下开机按钮之后一共经历4个过程。 按下电源——》BIOS自检——》系统引导lilo/grub——》启动内核 其中,对每个过程都执行了自己该做的初始化...
  • 单片机与 PC 串口通信实验

    万次阅读 多人点赞 2019-01-22 17:57:24
    接收过程中,数据从输入一位寄存器右边移入,起始位移至输入移位寄存器最左边时,控制电路进行最后一次移位,当 RI=0;且 SM2=0(或接收到的停止位为 1)时,将接收到的 9 位数据的前 8 位数据装入接收 SBUF,第 9 ...
  • 高通平台启动过程

    千次阅读 多人点赞 2019-10-24 11:49:29
    高通平台启动过程
  • 戴尔笔记本u盘启动按F12没有usb启动项 dellPC用f12没有u盘启动如何办我们使用PC的时候,总是会遇到很多的PC难题。当我们遇到了戴尔笔记本按f12没有u盘启动选项的时候,那么我们需要如何办呢?今天就一起来跟随...
  • 实体PC机上安装Linux系统

    万次阅读 多人点赞 2018-01-26 01:38:40
    今天无意间看到我那台闲置了好久的笔记本,突然心血来潮想给它装一个Linux系统。我的联想G480,曾经陪我走过整整4年的大学时光,后来因为时常卡顿而被...软件:老毛桃U盘启动盘制作工具,Linux系统发行版的映象文件...
  • 计算机加电后操作系统启动过程

    千次阅读 2018-03-14 13:49:03
    计算机加电后操作系统启动过程2017-11-05 13:41 by ☆Ronny丶, 670 阅读, 0 评论, 收藏, 编辑揭开钢琴的盖子:操作系统好比一个架美丽的钢琴,我们可以用上面的琴键弹出优美的旋律。但是我们不能满足于只会弹奏,...
  • 处理器启动过程简介

    千次阅读 2018-02-03 22:20:48
    第二步决定:PC寄存器的默认值决定第一条执行指令; 第三步启动:第一条执行指令隶属于启动程序——Bootloader 2. 启动程序(Bootloader) 系统上电后运行的第一次程序为Bootloader,而
  • 利用DoraOS将旧PC改造成瘦客户

    千次阅读 2020-10-11 23:47:39
    DoraOS(原名JYOS)是一款瘦客户软件,支持将旧的x86电脑转化为专业的瘦客户系统。DoraOS支持Deskpool、RDP、SPICE、oVirt、Citrix Receiver、VMware View、华为HDP等桌面连接。 DoraOS支持的常见的x86...
  • 嵌入式Linux系统启动过程

    万次阅读 2018-03-05 17:48:27
    嵌入式Linux系统启动过程 一个嵌入式 Linux 系统从软件角度看可以分为四个部分:引导加载程序(Bootloader), Linux 内核,文件系统,应用程序。当系统首次引导时,或系统被重置时,处理器会执行一个位于Flash/ROM...
  • 采用以太网接口的目的在于,一定技术要求下,实现PC机和FPGA的实时数据传输。从而可以借助PC机强大的计算能力,降低FPGA的运算负担。成都浩然电子有限公司开发的网络模块HS-NM5300A,作为实现以太网通信的主要元件...
  • 电脑启动方式有几种你知道吗?

    千次阅读 2021-07-18 02:04:59
    关于电脑启动方式有几种,可能你会说,电脑启动不就是按电源按钮启动吗?实际上,电脑有三种启动方式,而且三种启动方式会对应不一样情况,虽然有些概念对现在的电脑略微有一点点落后,但是对于玩电脑的人来说,这些...
  • u盾电脑具体使用操作过程

    千次阅读 2021-08-03 02:01:52
    一、个人信息就是工行里自带的信息,第一次使用U盾要打开工行,下载个人信息到U盾的,会有自动提示的,当你登陆工行的网站也会有提示的。... 另外,“启动项”点电脑左下开始“运行”输入“msconfig”就能找到。
  • 我用的是centos的镜像,这次项目的意义是:将虚拟机当成服务器,本地浏览器,输入ip地址和域名都可以访问的到虚拟机的项目。 个人建议,先不要用xshell链接虚拟机,因为我尝试这么做的时候,他安装lnmp的...
  • 浅谈操作系统-启动过程

    万次阅读 多人点赞 2017-12-23 13:41:45
    前言时光匆碌,不知不觉都大三了,众多的专业课的学习也算是找到了一些乐趣,纸上得来终觉浅,所以决定完整的回顾一下整个操作系统的知识,为了理论与实践相结合,以学校实验室的EOS操作系统为例进行实践操作,...
  • 参考文章 IBM:linux引导内幕 个人Notes: (1)PC机和嵌入式系统的启动方式通常有些不同,PC机在bootloader之前有BIOS,可能是由PC机的复杂功能决定的:A.提供很多灵活性,比如支持多操作系统等
  • 嵌入式系统启动过程

    千次阅读 2014-09-11 16:23:22
    ++++++++++++++++++++++++++++++++++++++++++ 本文系本站原创,欢迎转载! 转载请注明出处: ... ++++++++++++++++++++++++++++++++++++++++++ ...通常PC开机之后,会进入带有PC机厂商信息的BIOS画面
  • STM32的完整启动流程分析

    千次阅读 多人点赞 2021-12-02 20:39:08
    关于STM32的启动流程,网上有的资料讨论几种boot模式,有的回答启动文件的内容,查阅了很多资料后,本文给出一个比较全面的总结和回答。 1. 根据boot引脚决定三种启动模式 复位后, SYSCLK 的第四个上升沿...
  • 一篇文章看明白 Android 系统启动时都干了什么

    万次阅读 多人点赞 2018-01-26 17:32:44
    Android - 系统启动过程 计算机是如何启动的? 首先熟悉一些概念,计算机的硬件包括:CPU,内存,硬盘,显卡,显示器,键盘鼠标等其他输入输出设备。 所有的软件(比如:操作系统)都是存放硬盘上,程序执行时...
  • 指令与程序主机上执行过程主机完成一条指令过程计算机基本组成图片取数指令步骤存数指令操作程序运行过程 主机完成一条指令过程 计算机基本组成图片 取指令(PC:存放当前预执行指令的地址,具有计数功能(PC)+1...
  • Boot Loader启动过程分析

    千次阅读 2017-02-12 17:02:13
    一、 Boot Loader的概念和功能  1、嵌入式Linux软件结构与分布一般情况下嵌入式Linux系统的软件主要分为以下及部分: ...有的芯片比较复杂,比如Omap3,他flash没有代码的时候有许多启动
  • linux启动过程中dtb的作用

    千次阅读 2015-04-01 10:10:11
    dtb文件作用的描述是,使用dtb可以减少linux... 我的理解是,linux内核启动过程中会解析dtb文件,根据dtb文件中设备列表进行加注各个外设的驱动模块。不知这样理解是否正确? 正确,解析dtb并创建platform device
  • 上一篇文章我们讲了怎样不购买专业版的情况下自定义Unity的启动Logo。 那本篇文章就来介绍一下,怎样去除默认Logo的前提下制作自己的启动动画!
  • 计算机程序的执行过程

    千次阅读 2021-07-21 02:32:33
    [size=small]微型计算机程序的执行过程计算机采取"存储程序与程序控制"的工作方式,即事先把程序加载到计算机的存储器,当启动运行后,计算机便会自动按照程序的要示进行工作。为了进一步说明微机的工作过程,...
  • 系统启动U盘制作全过程详解

    千次阅读 2018-09-25 11:59:46
    叙:之前自己的系统是家庭版的,自己升级为专业版的时候出了问题,...系统启动U盘制作全过程详解 1. 下载系统启动盘制作工具 下载安装系统启动U盘制作工具,我建议使用老毛桃,试过大白菜的,但是系统会先提示病...
  • 前阶段项目涉及到了Android系统定制任务,Android系统定制前提要知道Android系统是如何启动的。 本文参考了一些书籍的若干章节,比如《Android进阶解密-第2章-Android系统启动》、《深入理解Android虚拟机-第8/9...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 122,990
精华内容 49,196
关键字:

在启动pc机的过程中