如何确定内核的烧写地址?

mamamiya 2010-12-21 11:12:07
现在要往flash种烧写内核。 如何确定内核烧在flash的什么地址范围呢?

...全文
298 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ldd 2010-12-22
  • 打赏
  • 举报
回复
查看U-boot
mamamiya 2010-12-22
  • 打赏
  • 举报
回复
PMON的话一般在哪查看?
Apple_Demo 2010-12-22
  • 打赏
  • 举报
回复
是在内核中划分好的。
steven_miao 2010-12-22
  • 打赏
  • 举报
回复
看kernel,以s3c2410或s3c6410为例,一般在mach-smdk6410.c中会定义nand flash的分区。如
struct mtd_partition s3c_partition_info[] = {
{
.name = "Bootloader",
.offset = 0,
.size = (512*SZ_1K),
/* .mask_flags = MTD_CAP_NANDFLASH, */
},
{
.name = "Kernel",
.offset = (512*SZ_1K),
.size = (8*SZ_1M),
/* .mask_flags = MTD_CAP_NANDFLASH, */
},
{
.name = "File System",
.offset = (8*SZ_1M + 512*SZ_1K),
.size = (128*SZ_1M),
},
{
.name = "User",
.offset = MTDPART_OFS_APPEND,
.size = MTDPART_SIZ_FULL,
}
};
这个就定义了nand flash 的分区。
dfxxm 2010-12-22
  • 打赏
  • 举报
回复
如果你的bootloader使用的是u-boot,那么你设置bootcmd的时候会设置启动方式和地址,如果是从flash启动如cp.b 11000000 20000000 fffff,11000000 就是你烧写内核的地址,20000000是内核拷贝到sdram的地址
redxu 2010-12-22
  • 打赏
  • 举报
回复
你烧写在哪,真正决定的是在bootloader里,但内核中的分区一般又要求与bootloader是一致的,因为当bootloader引导结束,控制权将送到内核,所以此时调用内核的地址是bootloader它自己认为的地址,而且它也烧写到了这,所以内核肯定能够起来。然后内核根据内核源码nand分区地址去调用rootfs,如果你bootloader烧写到nand地址并非是内核中所要求的地址,将产生kernel panic。

4,469

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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