当前位置: 技术问答>linux和unix
三星 uboot 编译问题
来源: 互联网 发布时间:2016-07-10
本文导语: 大家知道,三星的CPU上电的时候会自动从nand里面读4k或者8k字节的内容(在wince里面我们称之为stepldr)到内存中,然后开始运行此4k(或8k)数据,此程序将加载剩下的数据(wince里面我们称之为eboot)。在linux里面,uboot是怎么...
大家知道,三星的CPU上电的时候会自动从nand里面读4k或者8k字节的内容(在wince里面我们称之为stepldr)到内存中,然后开始运行此4k(或8k)数据,此程序将加载剩下的数据(wince里面我们称之为eboot)。在linux里面,uboot是怎么做的?它是不是也分成了两部分?是如何分的?从哪个makefile或者mk文件里面可以找到这样的配置?还是未分?如果未分,它又是怎么保证前面4k、8k数据可以正常工作的呢?至少要保证nand的那些功能函数要在4k里面吧?
|
.lds中定义的入口地址
|
再将其他部分的代码拷贝到norflash中启动
是拷贝到SDRAM上运行。
|
每次 都是手动的拷贝到sdrame中的
|
感觉你问的很不专业
|
据我的了解是,uboot不支持nandflash启动,支持norflash启动,不知道现在有没有添加这方面的支持。
samsung的s3c2410(或者s3c2440)的芯片中一个被成为stepping stone的东西,大小为4k,系统启动的时候首先会将启动初始化代码拷贝到该单元中(主要是汇编部分,一般为初始化中断向量表,初始化内存,初始化MMU等),之后,再将其他部分的代码拷贝到norflash中启动,该部分主要为C语言部分,作用为建立内存空间映射等,为调用OS kernel准备环境。
samsung的s3c2410(或者s3c2440)的芯片中一个被成为stepping stone的东西,大小为4k,系统启动的时候首先会将启动初始化代码拷贝到该单元中(主要是汇编部分,一般为初始化中断向量表,初始化内存,初始化MMU等),之后,再将其他部分的代码拷贝到norflash中启动,该部分主要为C语言部分,作用为建立内存空间映射等,为调用OS kernel准备环境。
|
你在CE下面找到“uboot的编译是怎么保证一部分必需的内容放在前面4k里面”了?
|
而且你问的这个问题很深,我也很想知道,但一直没搞明白。这个应该与内存中的一段特殊代码有关,这段代码是不算在那块内存大小中的(它是单独的,不可写的,所以计算内存大小是不说它的)
|
对的!
5楼的解释基本没有错误!
|
但我找不到uboot的编译是怎么保证一部分必需的内容放在前面4k里面。。。。
---只要烧录到norflash 从地址0 或从nandflash 第一个开始烧就可以了。
以2440为例子,如从norflash启动,则片选cs0(地址0开始。。)为norflash 否则为nandflash。
用三星的sjf2410改改就可以用到2440上烧了。
6410没用过,应该差不多。从4k变成8k
---只要烧录到norflash 从地址0 或从nandflash 第一个开始烧就可以了。
以2440为例子,如从norflash启动,则片选cs0(地址0开始。。)为norflash 否则为nandflash。
用三星的sjf2410改改就可以用到2440上烧了。
6410没用过,应该差不多。从4k变成8k