天嵌 ARM开发社区

 找回密码
 注册
查看: 3246|回复: 3

u-boot运行时不怕内存地址冲突吗?

[复制链接]
kicer 发表于 2010-11-4 10:52:45 | 显示全部楼层 |阅读模式
本帖最后由 kicer 于 2010-11-4 10:57 编辑

大家好,请教一个问题:
1. 设置的u-boot 的TEXT_BASE为0x33f80000,我理解是不是在运行的时候代码是被加载到33f80000地址处运行的?

2. 然后在u-boot(A)中下载同一个uboot(B)到地址0x33f80000处应该覆盖掉了原来的代码部分,为什么我下载的时候可以正常下载呐?

3. 下载后运行出错,到一半就挂起了,证明内存确实冲突了?

注: 使用的tftp下载
machoe 发表于 2010-11-4 11:28:02 | 显示全部楼层
这个要看你实际的设置是怎么设置的,你是在.lds链接脚本中设置的吗?你设置的TEXT_BASE是加载地址,还是重定位的运行地址呢?这个是关键的所在,如果你设置的是运行地址,那肯定就会有问题,如果你设置的是加载地址,而运行地址在别处,如:0x30000000,那就不会出问题。
天嵌_support1 发表于 2010-11-4 11:31:53 | 显示全部楼层
1# kicer


是的!网友
 楼主| kicer 发表于 2010-11-4 14:49:30 | 显示全部楼层
可能是我没说明白,是在链接脚本中设置的。刚才又下了几个地址测试了一下:
[运行地址是0x33f80000,以下是下载的地址]
0x33f40000 可以下载,运行出错
0x33f60000 不可以下载
0x33f70000 不可以下载
0x33f80000 可以下载
0x33f90000 不可以下载


从上面结果看确实是内存冲突了,但是如果下载u-boot(B)到u-boot(A)的运行地址[这几个地址都是一样的],由于两部分的代码是一样的,所以是可以下载的但不可以运行。是这样的吗?感觉还是有点矛盾,,,自己复制自己
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-5-18 15:14 , Processed in 1.062500 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表