• «
  • 1
  • 2
  • »
  • Pages: 2/2     Go
主题 : 用openjtag怎样烧写bios? 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 10286
精华: 0
发帖: 12
金钱: 85 两
威望: 29 点
贡献值: 0 点
综合积分: 24 分
注册时间: 2009-10-30
最后登录: 2011-03-12
10楼  发表于: 2010-06-01 10:24
引用第2楼kasim于2010-03-24 15:47发表的  :
简单的说:
在NAND Flash启动模式下,
1. 用OpenJtag下载一个可以初始化SDRAM的二进制档(OpenJtag随机光盘里的init.bin就可以)到0x0地址上,并执行;
2. 用OpenJtag下载一个带有烧写Flash和程序下载功能的bootloader到SDRAM中,并且将PC指针跳转到它在SDRAM的入口地址上执行;
3. 用这个bootloder下载你需要放在Flash中的bios到Flash中。
.......



这样说比较方便,
第二步中的Bootloader是在RAM中运行,并且是用来在第三步中烧写BIOS的(也就是,Bootloader吧?!)
因为在第一步中已经初始化了RAM,所以第二步中在RAM跑的这个Bootloader不能再初始化RAM,也省去了从NAND到RAM的搬运过程,也就是说这个Bootloader跟第三步中烧写到NAND里的Bootloader是不一样的
这是我的理解。
这样理解正确吗?(好像不对,源码好像能判断当前是在RAM中还是在flash中的,请版主给出明确的回答和详细的解释,谢谢!)

这样理解的话,利用openjtag烧写NAND,需要两个不同的Bootloader,另外还需要初始化RAM的binary文件(如init.bin),这样会不会太傻瓜了呢
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
贡献值: 71 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
11楼  发表于: 2010-06-01 11:38
第二步中的Bootloader是在RAM中运行,并且是用来在第三步中烧写BIOS的(也就是,Bootloader吧?!)

是的

因为在第一步中已经初始化了RAM,所以第二步中在RAM跑的这个Bootloader不能再初始化RAM,也省去了从NAND到RAM的搬运过程,

是的

也就是说这个Bootloader跟第三步中烧写到NAND里的Bootloader是不一样的
这是我的理解。
这样理解正确吗?(好像不对,源码好像能判断当前是在RAM中还是在flash中的,请版主给出明确的回答和详细的解释,谢谢!)

你自己已经给出了答案。烧到NAND Flash中的bootloader可以判断自己是跑在RAM里还是Flash里,为什么还需要两个不同的bootloader呢?你当然可以用它(运行在RAM中)来把自己写入到NAND Flash中。

所以说,整个过程只需要两个东西:
1. 用来初始化RAM的binary档(或者Jtag支持的脚本也可以)
2. 支持从RAM/NAND中启动并且支持烧写NAND Flash的bootloader
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
  • «
  • 1
  • 2
  • »
  • Pages: 2/2     Go