当前位置:首页 » 存储配置 » 存储器启动配置

存储器启动配置

发布时间: 2024-10-22 22:05:18

❶ 华硕笔记本如何在BIOS里把U盘设为第一启动项

尊敬的华硕用户,您好!

开机F2加载BIOS界面—【Boot】选项卡--【Boot Option Priorities】选项—选中【Boot Option #1】按Enter确认,在Boot option#1的选项列表中选择USB设备。

❷ 根据计算机存储器记录信息原理的不同可分为哪三类

存储器不仅可以分为三类。因为按照不同的划分方法,存储器可分为不同种类。常见的分类方法如下。

一、按存储介质划分

1、半导体存储器:用半导体器件组成的存储器。

2、磁表面存储器:用磁性材料做成的存储器。

二、按存储方式划分

1、随机存储器:任何存储单元的内容都能被随机存取,且存取时间和存储单元的物理位置无关。

2、顺序存储器:只能按某种顺序来存取,存取时间和存储单元的物理位置有关。

三、按读写功能划分

1、只读存储器(ROM):存储的内容是固定不变的,只能读出而不能写入的半导体存储器。

2、随机读写存储器(RAM):既能读出又能写入的存储器。

四、按资料保存师

1、非永久存储器:断电时信息消失的存储器。

2、永久存储器:断电后仍能保存信巧团息的存储器。

五、按用途分类

1、主存:主存用于存储计算机运行过程中大量的程序和数据,存取速度快,存储容量小。

2、外部存储:外部存储系统程序和大数据文件及数据库存储容量,单位成本低。

3、高速缓存存储器:高速缓存存储器访问指令和数据速度快,但存储容量小。

(2)存储器启动配置扩展阅读:

1、内部存储和外部存储

一般来说,内部存储是最经济但最不灵活的,因此用户必须确定未来对存储的需求是否会增长,以及是否有某种方法可以升级到具有更多代码空间的微控制器。用户通常根据搏猛成本选择能满足应用要求的内存容量最小的单片机。

2、启动存储

在较大的微控制器或基于处理器的系统中,用户可以用引导代码进行初始化。应用程序本身通常决定是否需要引导代码,以及是否需要专用的引导存储。

3、配置存储

对于现场可编程门阵列(fpga)或片上系统(SoC),存储器可以用来存储配置信息。这种存储器必须是非易失的EPROM、EEPROM或闪存。在大多数情况下,FPGA使用SPI接口,但一些较老的设备仍然使用FPGA串行接口。

4、程序存储

所有有处理器的系统都使用程序内存,但是用户必须决定内存是在处理器内部还是外部。做出此决定后,用户可以进一步确定存储的容量和类型。

5、数据存储

类似于程序存储器,数据存储器可以位于一个微控制器或一个孝银橘外部设备,但有一些不同的两种情况。有时微控制器内部包含SRAM(易失性)和EEPROM(非易失性)数据存储器,但有时它不包含内部EEPROM,在这种情况下,当需要存储大量数据时,用户可以选择外部串行EEPROM或串行闪存设备。

6、易失性和非易失性存储器

内存可以分为易失性内存(在断电后丢失数据)和非易失性内存(在断电后保留数据)。用户有时会将易失性内存与备用电池一起使用,以实现类似于非易失性设备的功能,但这可能比简单地使用非易失性内存更昂贵。

7、串行存储器和并行存储器

对于较大的应用程序,微控制器通常没有足够大的内存。必须使用外部存储器,因为外部寻址总线通常是并行的,外部程序存储器和数据存储器也将是并行的。

8、EEPROM和闪存

内存技术的成熟已经模糊了RAM和ROM之间的区别,现在有一些类型的内存(如EEPROM和闪存)结合了两者的特点。这些设备像RAM一样读写,在断电时像ROM一样保存数据。它们都是电可擦可编程的,但各有优缺点。

❸ 怎么配置RAID0

1、Intel芯片组和AMD芯片组都可以基本支持各种磁盘阵列模式的构建,因此设置RAID0磁盘阵列非常简单。首先准备两个硬盘驱动器,同时,首先将硬盘驱动器与主板上的操作系统拔下,以免替换设置,可惜破坏了以前的硬盘驱动器数据。

❹ 如何烧写u-boot到SD卡

长话短说开始搞SD卡烧写UBOOT,从SD启动UBOOT。
从s5pv210_irom_applicationnote_preliminary_20091126.pdf知道,s5pv210启动分BL0、BL1、BL2阶段。BL0是s5pv210内部IROM固化的代码,这段代码根据OM引脚配置状态来选择从哪个外部存储设备加载BL1段代码(实际上BL1代码就是我们编写的UBOOT的前8K代码,这段代码要包含完整的将后半部UBOOT代码复制和清bss段的功能,当然我们要从SD卡启动烧写在上面的UBOOT,OM引脚就必须配置为从SD卡启动配置)。

图1
从上图可知,从sd启动的时候BL0加载的代码是从第512个字节处开始加载代码,为什么要这样做呢?由于以后功能扩展的需要三星的软件工程师写的固化到IROM中的BL0代码是从SD卡的512字节处加载BL1的,他就是这样写的,我们对应UBOOT放置在SD卡中的位置就要往后移动512字节,后面有介绍怎么指定把uboot写到sd卡指定的位置的命令。
还有一定要注意如下所示的地方:

图2
在BL1之前要加16个字节的头部信息。也就是在真正的UBOOT第一条指令之前要加16个字节的头部信息,于是就有我们所看到的uboot代码如下的用宏定义的一段:

[cpp] view plain
#if defined(CONFIG_EVT1) && !defined(CONFIG_FUSED)
.word 0x2000
.word 0x0
.word 0x0
.word 0x0
#endif

.globl _start
_start: b reset
ldr pc, _undefined_instruction
ldr pc, _software_interrupt
ldr pc, _prefetch_abort

其中的
.word 0x2000 代表BL1size(8K长度),.word 0x0 为保留字节 .word 0x0为checksum(后续会通过一个mkbl1工具来计算bl1的checksum并填写这个位置),最后一个.word 0x0也为保留字节。

再来看看uboot的下面的部分,如果bl0正常读取了bl1,代码就会到如下段:

[cpp] view plain
/* Read booting information */
ldr r0, =PRO_ID_BASE
ldr r1, [r0,#OMR_OFFSET] //读OM引脚的配置状态
bic r2, r1, #0xffffffc1

#ifdef CONFIG_VOGUES
/* PS_HOLD(GPH0_0) set to output high */
ldr r0, =ELFIN_GPIO_BASE
ldr r1, =0x00000001
str r1, [r0, #GPH0CON_OFFSET]

ldr r1, =0x5500
str r1, [r0, #GPH0PUD_OFFSET]

ldr r1, =0x01
str r1, [r0, #GPH0DAT_OFFSET]
#endif

/* NAND BOOT */
cmp r2, #0x0 @ 512B 4-cycle
moveq r3, #BOOT_NAND //根据OM引脚配置状态来给R3寄存器赋予代表系统是从何冲外部存储器启动的配置值。

cmp r2, #0x2 @ 2KB 5-cycle
moveq r3, #BOOT_NAND

cmp r2, #0x4 @ 4KB 5-cycle 8-bit ECC
moveq r3, #BOOT_NAND

cmp r2, #0x6 @ 4KB 5-cycle 16-bit ECC
moveq r3, #BOOT_NAND

cmp r2, #0x8 @ OneNAND Mux
moveq r3, #BOOT_ONENAND

/* SD/MMC BOOT */
cmp r2, #0xc<pre name="code" class="cpp"> ldr sp, _TEXT_PHY_BASE /* setup temp stack pointer */
sub sp, sp, #12
mov fp, #0 /* no previous frame, so fp=0 */

/* when we already run in ram, we don't need to relocate U-Boot.
* and actually, memory controller must be configured before U-Boot
* is running in ram.
*/
ldr r0, =0xff000fff
bic r1, pc, r0 /* r0 <- current base addr of code */
ldr r2, _TEXT_BASE /* r1 <- original base addr in ram */
bic r2, r2, r0 /* r0 <- current base addr of code */
cmp r1, r2 /* compare r0, r1 */
beq after_ /* r0 == r1 then skip flash */</pre><br>
moveq r3, #BOOT_MMCSD/* NOR BOOT */cmp r2, #0x14moveq r3, #BOOT_NOR#if 0 /* Android C110 BSP uses OneNAND booting! *//* For second device booting *//* OneNAND BOOTONG failed */cmp r2, #0x8moveq r3, #BOOT_SEC_DEV#endif/* Uart BOOTONG failed */cmp r2, #(0x1<<4)moveq
r3, #BOOT_SEC_DEVldr r0, =INF_REG_BASEstr r3, [r0, #INF_REG3_OFFSET] //将配置值存入到用户使用的寄存器中,方便以后使用的时候读取此寄存器来了解此次启动时从何种外部存储设备启动
<pre></pre>
<p></p>
<pre></pre>
<pre name="code" class="cpp"> //ldr sp, =0xd0036000 /* end of sram dedicated to u-boot */
ldr sp, =0xd0035400 //BL1段的函数进行操作的堆栈位置,这里我修改了堆栈到了0xd0035400是由于图2中所示BL0代码进行了它自己代码堆栈的初始化,而RW/ZI region Heap的最低部就位于0xd0035400,为了不修改BL0堆栈和BL0代码已经写好的一些函数功能(会在下面用到),我将堆栈修改到了0xd0035400
sub sp, sp, #12 /* set stack */
mov fp, #0

bl lowlevel_init /* go setup pll,mux,memory */ //这里会进行始终,内存,串口初始化</pre>
<p>之后运行到</p>
<p></p>
<pre name="code" class="cpp"> ldr sp, _TEXT_PHY_BASE /* setup temp stack pointer */ //由于上面一步已经初始化了DRAM,所以在这里将以后的堆栈设置到了DRAM中的位置(以后BL2代码中函数都是基于此堆栈)
sub sp, sp, #12
mov fp, #0 /* no previous frame, so fp=0 */

/* when we already run in ram, we don't need to relocate U-Boot.
* and actually, memory controller must be configured before U-Boot
* is running in ram.
*/
ldr r0, =0xff000fff
bic r1, pc, r0 /* r0 <- current base addr of code */
ldr r2, _TEXT_BASE /* r1 <- original base addr in ram */ //加载程序要运行的编译地址,同现在程序运行的地址比较
bic r2, r2, r0 /* r0 <- current base addr of code */
cmp r1, r2 /* compare r0, r1 */
beq after_ /* r0 == r1 then skip flash */ //如果两地址相等,代码程序已经再DRAM中运行不必再拷贝,不相等代表程序没有在编译地址运行,还要拷贝代码到编译地址去,最后跳到对应编译地址内运行代码。</pre><pre name="code" class="cpp"> ldr r0, =INF_REG_BASE
ldr r1, [r0, #INF_REG3_OFFSET]
cmp r1, #BOOT_NAND /* 0x0 => boot device is nand */
beq nand_boot
cmp r1, #BOOT_ONENAND /* 0x1 => boot device is onenand */
beq onenand_boot
cmp r1, #BOOT_MMCSD
beq mmcsd_boot
cmp r1, #BOOT_NOR
beq nor_boot
cmp r1, #BOOT_SEC_DEV
beq mmcsd_boot //代码判断要拷贝后,读取之前存入到用户使用寄存器中的值来判断此次启动从何种外部存储设备启动,这里为sd卡启动
~~~~~省略若干代码~~~~~~~~
mmcsd_boot:
#if DELETE
ldr sp, _TEXT_PHY_BASE
sub sp, sp, #12
mov fp, #0
#endif
bl movi_bl2_ //最后BL1代码来到此处从sd卡拷贝剩余的代码
b after_</pre><br>
<pre></pre>
<pre name="code" class="cpp"></pre>

❺ 思科路由器的flash和NVram有何区别

思科路由器的启动过程简单来说分为三个部分
1.硬件检查
2.运行IOS
3.导入配置文件。
要了解思科路由器的启动过程首先要来了解一下思科路由器的主要存储硬件和它们的作用。
ROM只读存储器是一个用于维护路由器的硬件它存储着POST程序bootstrap程序以及Mini IOS。Flash它是用来存储路由器完整IOS镜像的硬件。IOS就相当于思科路由器的操作系统没有IOS或者IOS镜像损坏的路由器是无法工作的。
NVRAM是用于存放路由器的启动配置文件Startup-config的硬件。路由器启动前最后一次保存的配置都储存在这里。
RAM存储路由器启动时由启动配置文件拷贝而来的运行配置文件Running-config解压后的IOS以及学习到的路由表Routing-table和包队列。
接下来详细了解一下思科路由器的启动过程
一、路由器加电后首先运行ROM中的POST程序Power On Self Test对路由器的硬件进行检测俗称加电自检。
二、检测通过后紧接着执行ROM中的引导程序bootstrap并根据寄存器值register来决定启动方式。寄存器值的格式为0x21YZ Y列的状态
0x210Z从nvram加载配置文件
0x214Z不从nvram加载配置文件
Z列的状态0x21Y0从rommon启动提示符为路由器启动时按CtrlBreak0x21Y1从mini ios启动提示符为Routerboot0x21Y,从flash启动提示符为Router我们经常使用的两个寄存器值0x2102正常0x2142不读取保存的配置。
三、如果正常启动则按引导程序到Flash中查找IOS镜像。如果找到IOS镜像则读取后正常启动。如果没有找到IOS镜像则进入boot模式即Mini IOS启动。boot模式下可使用TFTP上的IOS或使用TFTP/X-modem为路由器重新灌一个IOS。如果Mini IOS也启动失败则进入rom monitor模式。四、读取IOS并初始化成功后引导程序将更具寄存器值决定加载或者不加载启动配置文件。如果选择加载则到NVRAM中找到启动配置文件并加载到RAM中成为运行配置文件。如果选择不加载或者根本没有启动配置文件则路由器会进入询问配置模式以问答的方式对路由器进行基本配置。五、进入用户模式启动过程完毕。Cisco Router启动过程简介路由器是特殊用途的计算机。因为它是计算机所以也有一个启动过程。在启动时路由器会产生一些信息并从控制台端口送出。如果已经将PC连接到控制台端口上那么在超级终端窗口将会显示所有的启动信息。信息包括1所加载的IOS版本IOStm1721 softwareXXX-X-XVersionXXXXX XX2接口数量2 Ethernet/IEEE 802.3 interfaces等3接口类型4NVRAM的大小125K bytes of non-volatile configuration memory5闪存的大小。32768K bytes of processor board system flash通过路由器背板上的LED灯也可获得一些指示。

注IOS存放在闪存中引导程序存放在ROM中启动配置文件存放在NVRAM中。

热点内容
消行编程 发布:2024-10-23 00:25:12 浏览:758
安卓怎么关闭小窗口模式 发布:2024-10-23 00:24:35 浏览:631
电脑wan口设置断开服务器无响应 发布:2024-10-23 00:13:58 浏览:772
怎么配置跑赢基金 发布:2024-10-23 00:11:18 浏览:826
u盘全盘写入缓存 发布:2024-10-23 00:10:23 浏览:196
oracle数据库安装 发布:2024-10-23 00:00:26 浏览:738
什么电脑配置能畅玩堡垒之夜 发布:2024-10-22 23:58:09 浏览:830
如何看devc的编译环境 发布:2024-10-22 23:54:22 浏览:656
平板电脑上如何实现c语言的编译 发布:2024-10-22 23:49:52 浏览:187
淘宝少年电话密码是多少 发布:2024-10-22 23:49:10 浏览:988