加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

uboot位置理解

发布时间:2020-12-15 06:11:15 所属栏目:百科 来源:网络整理
导读:有些疑问:当切换到下载模式是,串口会在串口终端输出一系列的信息,提示我们怎样做。这表明开发板是已经有uboot的了,那么uboot存放在哪呢?因为,但我格式化nand Flash的时候,串口终端还能看到信息,说明uboot并没有因为nand Flash的格式化而删除了...??

有些疑问:当切换到下载模式是,串口会在串口终端输出一系列的信息,提示我们怎样做。这表明开发板是已经有uboot的了,那么uboot存放在哪呢?因为,但我格式化nand Flash的时候,串口终端还能看到信息,说明uboot并没有因为nand Flash的格式化而删除了...??难道说uboot存在在nor Flash中???

答:你是下载Uboot到Nand Flash,你从NandFLash启动后,uboot会被拷贝到SDRAM执行,就算你擦除了NandFlash,Uboot还是可以用。另外,你的NorFlash出产的时候是有uboot的

还有疑问的是: 配置USB下载工具时,地址是:0X30000000 ,这个地址是bank6的开始地址,是映射到SDRAM的空间的,但是我们下载的程序是下载到nand Flash上的,nand Flash映射的地址是bank0 ,开始地址是0x00000000。? ?只是说开发板启动时,硬件自动把nand Flash的前4K的代码复制到CPU内部的SRAM上运行罢了,。。。。。那么这样的话,这个0X30000000地址到底怎么解释?
答:程序是先下载到SDRAM中,然后通过nand write命令从SDRAM中拷贝存储到NandFlash的

?

明白了很多部分??你说的格式化nand Flash 后,uboot还能用,是在开发板还没重启或者说复位之前能用吧,因为这时还没断电,uboot还在SDRAM中存在。。。。如果说断电之后,重启,这时如果是从nand Flash启动的话,因为其内已经没uboot了,所以uboot不能用了,不知道我的理解正确不?

?

问题也困扰我很久了
那我想问下:在linker选项时有RO地址的设置 这个跟DNW中地址的设置有什么关系呢 还有如果我把DNW的地址改成0可以吗
我对于程序的的存放以及地址问题一直很模糊 不知道到底程序是如何被存放 又是如何被执行的
是不是所以烧写到NAND中的程序都是先放到SDRAM中的呢

?

?

R0设置的是0x30000000,也就是SDRAM的起始地址,这个地址我理解就是告诉编译器,所以我们的程序只能在SDRAM里跑,而且地址是从0x30000000开始,所以如果这么设置,bin可执行文件一定要拷贝到0x30000000,否则就会产生错误。当然RO的意思就是指令和常量存放的起始地址。 如果设置了0x30000000,那么假如代码里有一个标号label,这个标号对应的地址就会从0x30000000开始算起,当你通过这个 label 绝对跳转的时候,就是跳转到0x30000000以上的内存的位置,所以说如果设置了0x300000000,但你你把代码放到SRAM里执行(SRAM的地址是0-4k),就会出错

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读