小菜跪求, 内核移植的地址问题?????

libra811 2007-03-22 09:38:00
刚开始学习,好多不懂的地方,问得问题如果幼稚的请大家不要笑话
我的板子和代码都是现成的,提供商直接给的,但运行的时候kernel启动不了,我想问几个地址的问题,都把我搞糊涂了

u-boot中参数的设置如下:
#define CFG_SDRAM_BASE 0x84000000 /* SDRAM的基地址 */
#define CFG_SDRAM_SIZE 0x02000000 /* SDRAM的大小 */
#define CFG_FLASH_BASE 0xA0000000 /* FLASH的基地址 */
#define CFG_RESET_ADDRESS 0xA0000000 /* 复位地址 */

#define CFG_MONITOR_LEN 0x00020000 /* Reserve 256 kB for Monitor */
#define CFG_MONITOR_BASE 0xA0000000
#define CFG_MALLOC_LEN (1 << 20) /* Reserve 1MB kB for malloc */
#define CFG_BOOTPARAMS_LEN (128 << 10)
#define CFG_GBL_DATA_SIZE 1024 /* Global data structures */

#define CFG_MEMTEST_START CFG_SDRAM_BASE
#define CFG_MEMTEST_END (CFG_SDRAM_BASE + CFG_SDRAM_SIZE - (2 << 20))
#define CFG_LOAD_ADDR CFG_SDRAM_BASE /* default load address*/

在board/config.mk中
TEXT_BASE = 0x85F00000 /* board/config.mk */
我将U-boot.bin烧到flash的基地址0xA0000000,kernel烧到flash的0xA0040000位置
上电复位,在u-boot提示符下启动kernel,提示如下信息:
## Booting image at A0040000 ...
Image Name: Linux-2.6.11_31
Image Type: SuperH Linux Kernel Image (gzip compressed)
Data Size: 1519264 Bytes = 1.4 MB
Load Address: 84001000
Entry Point: 84002000
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK
Starting kernel @@ .......0x00000000.........
就停在了这个位置上不动了。

地址如上边已经设置好了,我想问一下:
1、TEXT_BASE是否指的是u-boot在SDRAM的地址?
2、为什么Load Address与CFG_SDRAM_BASE不一样?
3、Load Address与Entry Point指的是什么,有什么不同吗?是否可以设置一样,或者是由板子来决定的?
...全文
547 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunnylht 2009-12-24
  • 打赏
  • 举报
回复
现在超时编辑不了,请版务删除此贴中我之前的回复,因为此帖中含有我的个人邮箱,谢谢
sunnylht 2007-05-19
  • 打赏
  • 举报
回复
如果uboot中是TEXT_BASE就是设的0x33F80000, 那么必需download到这个地址的ram中才能正常运行.
那么这个地址如何确定的呢? 是这样的如果你的板子上RAM地址从0x3000_0000开始的,那么你可以把bootload分配在任意的地方运行. 但是我们往往要保留一些内存空间作为备用(比如download大文件系统的时候,我们必需先保存到临时内存,可能几十兆大小的连续空间) 那么我们可以把bootloader放在起始或者末尾的地方
0x3000_0000____________________
|
| 保留的内存空间
.
.
.
|
0x33f80000|____________________
| bootloader(128KByte)
0x40000000|____________________



我的邮箱是:sunnylht@163.com,如果有什么问题,欢迎e-mail来讨论。
zl_ai_yul 2007-04-03
  • 打赏
  • 举报
回复
<我的板子和代码都是现成的,提供商直接给的,但运行的时候kernel启动不了,我想问几个地址的问题,都把我搞糊涂了>
那就说明代码和硬件本身应该是 没有问题的

<Starting kernel @@ .......0x00000000.........
就停在了这个位置上不动了。>

建议你 仔细看看 各个引脚看看 是不是有 连焊的地方
xtire 2007-04-02
  • 打赏
  • 举报
回复
据我所知TEXT_BASE的确是U-Boot在SDRAM中是地址;
Load Address可以比CFG_SDRAM_BASE大一些,多一些应该是没有关系的,只要U-Boot能运行就可以了;
至于Entry Point我就不太清楚了。希望能帮上你。
libra811 2007-03-23
  • 打赏
  • 举报
回复
大家帮帮忙把,不知该怎么办了
libra811 2007-03-23
  • 打赏
  • 举报
回复
帮帮忙把

19,503

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧