uboot中的拷贝程序是指拷贝uboot自身吗
uboot中有那么一段程序判定程序是否在内存中,如果不是就拷贝过去内存中。拷贝过去的那程序是uboot自身程序吗?...
uboot中有那么一段程序判定程序是否在内存中,如果不是就拷贝过去内存中。
拷贝过去的那程序是uboot自身程序吗? 展开
拷贝过去的那程序是uboot自身程序吗? 展开
3个回答
百事牛
2024-10-28 广告
2024-10-28 广告
作为深圳奥凯丰科技有限公司的一员,对于zip删除文件的处理,我们可以这样回答:要打开zip压缩包中删除的文件,实际上需要首先明确文件是否真正从压缩包中移除了。如果文件已从zip中删除,那么就无法直接打开,除非有备份。但如果是指解压后删除了某...
点击进入详情页
本回答由百事牛提供
展开全部
是的,start.S中,一般长这样:
relocate: /* relocate U-Boot to RAM */
adr r0, _start /* r0 <- current position of code */
ldr r1, _TEXT_BASE /* test if we run from flash or RAM */
cmp r0, r1 /* don't reloc during debug */
beq stack_setup
ldr r2, _armboot_start
ldr r3, _bss_start
sub r2, r3, r2 /* r2 <- size of armboot */
add r2, r0, r2 /* r2 <- source end address */
copy_loop:
ldmia r0!, {r3-r10} /* copy from source address [r0] */
stmia r1!, {r3-r10} /* copy to target address [r1] */
cmp r0, r2 /* until source end addreee [r2] */
ble copy_loop
relocate: /* relocate U-Boot to RAM */
adr r0, _start /* r0 <- current position of code */
ldr r1, _TEXT_BASE /* test if we run from flash or RAM */
cmp r0, r1 /* don't reloc during debug */
beq stack_setup
ldr r2, _armboot_start
ldr r3, _bss_start
sub r2, r3, r2 /* r2 <- size of armboot */
add r2, r0, r2 /* r2 <- source end address */
copy_loop:
ldmia r0!, {r3-r10} /* copy from source address [r0] */
stmia r1!, {r3-r10} /* copy to target address [r1] */
cmp r0, r2 /* until source end addreee [r2] */
ble copy_loop
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个要看芯片的具体启动过程,如果是nand启动,对于2410或者2440是要把uboot前4k拷到片内ram,然后运行,复制整个uboot代码到片外的sdram。这就是为什么uboot里边的代码段起始地址TEXT_BASE = 0x33F80000,而链接文件里给的链接地址是0,因为代码要重定位
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询