打印
[嵌入式linux]

romfs.img如何拼接到linux.bin后面?变成image.bin

[复制链接]
4501|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
香如故|  楼主 | 2010-1-10 12:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
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下载到哪里

AN_Getting started uClinux with LPC22xx.pdf

392.04 KB

使用特权

评论回复
5
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还有外设的布局及大小不一。

使用特权

评论回复
6
john_light| | 2010-1-12 09:28 | 只看该作者
单纯的Linux内核肯定没有什么意义,它要和根文件系统配合应用起来。

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

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

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

我们常用的BootLoader往往能设置一些参数或者脚本,让它初始化完成后从什么地址到什么地址搬运数据。这些地址和你所使用的芯片及硬件设计密切相关。它还要给Linux内核传递运行参数,告诉内核根文件系统在什么地方等等。
-----------------------------------------------------------------------------
于是,一上电,BootLoader先跑起来,初始化需要的外设,扛着内核到某地,再扛着根文件到某地,然后告诉内核说,行了,该你跑了,你找根文件耍去吧……

使用特权

评论回复
7
wlq_9| | 2010-1-12 10:00 | 只看该作者
:lolLS幽默.
在lpc22xx上跑uclinux,那是蛋疼.

使用特权

评论回复
8
icecut| | 2010-1-12 13:17 | 只看该作者
你先把这些全写到cpu里去 ,然后读出来生产bin

使用特权

评论回复
9
mohanwei| | 2010-1-12 13:57 | 只看该作者
自己写个小工具,创建一个空文件,然后把各个模块放到其偏移地址上……

使用特权

评论回复
10
香如故|  楼主 | 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

粉丝