[嵌入式linux] romfs.img如何拼接到linux.bin后面?变成image.bin

[复制链接]
 楼主| 香如故 发表于 2010-1-10 12:23 | 显示全部楼层 |阅读模式
将romfs.img拼接在linux内核二进制文件linux.bin后面,形成可烧写文件image.bin,是通过u-boot还是其它工具?
烧写内容是只有boot.bin和image.bin嘛? 
john_light 发表于 2010-1-11 10:53 | 显示全部楼层
本帖最后由 john_light 于 2010-1-11 10:54 编辑

一般说来,BootLoader是第一个要烧写进Flash的,它负责对外设进行简单的配置,接受用户的其它操作。

Kernel和RootFS不必拼成一个文件,可以由BootLoader分别写入预定的地址。
sinanjj 发表于 2010-1-11 11:54 | 显示全部楼层
就是无法拼接吧.


这两个文件的内部格式好像是不同的. 看看文件名也知道,

一个是fs.img一个是bin.
 楼主| 香如故 发表于 2010-1-11 13:55 | 显示全部楼层
我用的是u_boot,不是说需要一个压缩的文件吗,用ulinux生成了romfs.img,linux.bin两个文件,不知道怎么把它们放到那里
我是按AN_Getting started uClinux with LPC22xx.pdf里步骤弄的,
u-boot可以用,当不知道把里面说的生存的roms.img和linux.bin下载到哪里

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
john_light 发表于 2010-1-12 09:00 | 显示全部楼层
本帖最后由 john_light 于 2010-1-12 09:12 编辑

看了一下你提供的LPC22xx文档,我觉得没有Atmel提供的那么详细。当然,我没在LPC22xx上跑过Linux。

ATMEL Linux for SAM

不同厂家在Linux上的应用方案有很多共通之处,差别主要是RAM、FLASH还有外设的布局及大小不一。
john_light 发表于 2010-1-12 09:28 | 显示全部楼层
单纯的Linux内核肯定没有什么意义,它要和根文件系统配合应用起来。

但是Linux内核加上文件系统往往体积不小,因此多把它们复制到外部扩展的RAM中再运行(如果是压缩的还要先解压)。

Linux跑起来之前,外部动态RAM等等资源需要初始化(比如配置动态刷新外部RAM),否则什么都存不了,更别说运行起来。

初始化的活基本上由BootLoader来干,解压搬运甚至更新内核或根文件亦然。

我们常用的BootLoader往往能设置一些参数或者脚本,让它初始化完成后从什么地址到什么地址搬运数据。这些地址和你所使用的芯片及硬件设计密切相关。它还要给Linux内核传递运行参数,告诉内核根文件系统在什么地方等等。
-----------------------------------------------------------------------------
于是,一上电,BootLoader先跑起来,初始化需要的外设,扛着内核到某地,再扛着根文件到某地,然后告诉内核说,行了,该你跑了,你找根文件耍去吧……
wlq_9 发表于 2010-1-12 10:00 | 显示全部楼层
:lolLS幽默.
在lpc22xx上跑uclinux,那是蛋疼.
icecut 发表于 2010-1-12 13:17 | 显示全部楼层
你先把这些全写到cpu里去 ,然后读出来生产bin
mohanwei 发表于 2010-1-12 13:57 | 显示全部楼层
自己写个小工具,创建一个空文件,然后把各个模块放到其偏移地址上……
 楼主| 香如故 发表于 2010-1-12 14:41 | 显示全部楼层
资源少啊,我只有一个lpc2200的板子
norflash 是16M,是地址是0x80000000
ram是8M地址是0x81000000
我照上面用uboot 的loadb命令
把linux.bin下载到0x81008000
roms.img下载到81200000
然后go 0x81008000结果串口输出是乱码
uboot的拨特率设置的是19200,不知道linux里有没有拨特率设置的?
出现乱码不知道是怎么回事?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

35

主题

291

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部