2638|3

64

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

bootloader中的一些问题 [复制链接]

小弟关于bootloader中有几个问题不清楚,麻烦兄弟们帮忙解释下,
1,其中涉及到内存映射,它的作用是什么?
2,cpu又是如何区分flash和ram的地址呢,难到有控制flash和ram地址的寄存器吗?
3,如果flash的os要加载到ram中执行,又是如何实现拷贝的呢,如果是压缩了文件,是如何解压呢?
十分感谢您的回答!

最新回复

OS, 首先要有BOOTLOADER,BOOTLOADER负责把OS加载到RAM中,然后跳过去,运行,BOOTLOADER要在引导代码区内!  详情 回复 发表于 2007-2-13 17:13
点赞 关注

回复
举报

62

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
1.映射是cpu某固定寻址空间变化,通过修改映射寄存器来标志具体得地址.
  比如映射到ram, 那么ram地址和其固定映射区地址其实是相同,其他类推
2.可以通过很多种,一般最终判断某寄存器数据,表象可以通过跳线, 程序设置也可以
3.很简单直接复制二进制代码进ram,其实说白了就是拷贝flash一段数据到ram,压缩也很容易理解
就是这部分执行代码是通过了压缩技术,要执行需要相应得解压缩后得到数据就是执行代码了.
 
 

回复

56

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
你要知道的是FLASH芯片是有2中的,NOR和NAND,如果是NAND的话就只能通过整个扇区的读取,将其中的数据加载到RAM中去执行,这有些类似PC读取外储存器一样,以扇区为单位来读,而不能直接在外储存器内执行,所以其不存在地址!如果是PC可以调用BIOS中断来实现,也可以通过端口来访问,而NOR就不同了,NOR和RAM一样被分配地址,数据可以按照字节为单位来读取,如果是程序代码,不用加载到RAM中而直接NOR中就可以执行,而我们平常用的U盘通常来讲都是NAND的,只是用来储存数据的,即使你直接在U盘中运行也是象运行硬盘中的数据一样,先读取到RAM中,再去执行的,那为什么我们用NAND而不是NOR呢?因为NAND的写速度要比NOR快很多.

你提到的数据压缩与解压运行:这种代码无论是保存在NOR还是NAND新片中都要进行解压操作才能运行,除非你的处理器可以运行压缩代码.也就是解压到了RAM中再去运行的

明白否?话说的很白了.
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

4
 
OS,
首先要有BOOTLOADER,BOOTLOADER负责把OS加载到RAM中,然后跳过去,运行,BOOTLOADER要在引导代码区内!
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表