嵌入式开发软件环境:uboot、kernel、rootfs、data布局分析

uboot+linux的整体方案

开发板的datasheet中都有详细的地址空间的划分,其中比较重要的两块是:DDR地址空间和Flash地址空间。DDR空间是系统和应用的运行空间,一般由linux系统自身进行使用和管理;Flash空间是系统和应用载体的存放空间,一般需要在使用前进行划分,由应用开发者进行管理。

简单的示例和说明。

其中,Flash的整体地址空间为:0x34000000~0x34FFFFFF,共16MB,使用的是Nor Flash芯片。布局需要做的工作是:

  • 确定uboot二进制文件的大小,使用的地址范围
  • 确定linux kernel镜像文件的大小,使用的地址范围
  • 确定rootfs 根文件系统的镜像文件大小,使用的地址范围
  • 估计整体应用方案所需的空间大小,选择可使用的地址范围

完成上述工作后,项目的布局如下:

  • uboot:0x34000000~0x34080000, 512KB
  • kernel : 0x34080000~0x34180000, 1MB, 文件大小为952.8KB
  • rootfs : 0x34180000~0x34700000, 5.5MB, 文件大小为3.85MB
  • data : 0x34700000~0x34FFFFFF, 9MB, 文件大小为3.725MB

到这一步已经完成了地址空间的逻辑布局,接下来就是存储空间的物理布局实现,就是对Flash进行分区,这里可以分成四个区,对应上述四块软件,也可以分成三个区:
mtdparts=phys_mapped_flash:0x180000(boot),0x580000(roofs70),0x900000(data)

烧写镜像文件
如何将上述相应的镜像文件下载到或者烧写到开发板上,也涉及到大批量生成的烧录方式

  • JTAG,或者配套的烧写器,再加上配套的软件套件,如CCS,完成uboot的烧写
  • 专门的串口烧写工具,完成uboot的烧写
  • 在uboot环境下可以使用tftp工具,完成kernel镜像、rootfs文件、app文件的烧写

项目中主要是:烧写器+tftp(uboot一般不修改)

uboot环境中tftp工具的使用
不同的uboot版本命令格式和提供的功能会有所差别,最好是使用前查阅帮助或者参考开发指导手册,主要的功能有从服务器下载文件和上传文件到服务器,常见的格式为:

- 下载文件:tftp <addr> <file>
- 上传文件:tftp <addr> <size> <file>
如果使用的是Nand Flash芯片,下载过程:

- 下载文件到内存地址
- erase Flash上对应的文件存放地址空间
- write 内存地址中的文件内容到Flash上对应的地址空间
如果使用的是Nor Flash芯片,下载过程:

- erase Flash上对应文件的存放地址空间
- 直接下载文件到Flash中对应文件的地址空间中:tftp 0x34180000 rootfs.jffs2
同样的现在也可以直接从Nor Flash中启动内核镜像,而不需要先将其加载到内存再启动:
setenv bootcmd "bootm 0x34080000"

批量生产的软件烧录

进行设备的批量生产阶段,肯定不能按照开发阶段的过程来进行软件环境的烧录,对于大批量来说,这样做效率太低,而且容易出错。越简单、单一的操作效率越高,越不容易出错。最佳的方式是:一步解决。在此推荐的方式是:

    • 按照上面的内容和步骤完成整个软件环境的布局和构建
    • 用tftp工具将整个Flash中的内容全部打包上传到服务器,得到一个整体方案镜像
    • 使用烧片器烧写整体镜像完成批量原始设备的软件烧录构建
时间: 2024-12-28 17:25:16

嵌入式开发软件环境:uboot、kernel、rootfs、data布局分析的相关文章

嵌入式开发基本环境

一台N3150机器作为编译服务器,跑xubuntu.同时可以作为代码管理服务器,也可以作为一个htpc使用,播放高清影片等. 由于N3150的功耗只有6W,无风扇,因此可以保证一个比较安静的环境. 阅读数据手册,分析代码,串口终端等都跑在XP下,可以映射网络磁盘访问编译服务器上的文件.同时XP上安装了硬件开发软件, 方便原理图,PCB设计等. 开发板采用beaglebone,代码采用TI官方的SDK. 目标: 1.基于beaglebone进行uboot代码分析. 2.设计一块beaglebone

在Linux运行期间升级Linux系统(Uboot+kernel+Rootfs)

版本:v1.2 摘要 本文主要介绍了如何在嵌入式Linux系统运行的时候,进行升级整个Linux系统,包括uboot,kernel和rootfs.以及简介Linux中的已有的通用的Nor Flash驱动m25p80,和简介mtd util以及相关工具mtdinfo,flash_erase,flash_eraseall,nanddump,nandwrite等的基本用法. 本文提供多种格式供: 在线阅读 HTML HTMLs PDF CHM TXT RTF WEBHELP 下载(7zip压缩包) H

buildroot管理uboot+kernel+rootfs

鉴于自己制作根文件系统太麻烦了,所以想用buildroot管理uboot,kernel,另外还可以自动生产rootfs,于是花了两天研究了下buildroot的框架和使用,在自己的2440开发板上也跑起来了,故整理成文档,以便自己将来忘记的时候能参考下: 1.源码下载,我下载的是2018.02.3版本 官方下载地址:http://buildroot.org/downloads/ 2.下 原文地址:https://www.cnblogs.com/kent-hu/p/9393513.html

c,c++,嵌入式开发工具,环境

网络性能工具:吞吐率测试工具:qcheck组播流测试工具:mcast超限组播测试工具:mcasttestsolarwinds带宽测试:ping plotter freeware测量无线网络带宽:ixchariot 网络管理常用工具 (2011-03-03 09:22) 标签:  网络管理  工具  分类: 系统管理 工具: Smokeping (网络延迟监测工具) 网址:http://oss.oetiker.ch/smokeping/ 类别:开放源码 平台: Linux/BSD/Unix/Win

【详解】嵌入式开发中固件的烧录方式

版本:v1.2 Crifan Li 摘要 本文主要介绍了嵌入式开发过程中,将固件从PC端下载到开发板中的各种方式,主要包括NFS挂载,Nand Flash和Nor Flash,USB,RS232,网卡NIC等方式. 本文提供多种格式供: 在线阅读 HTML HTMLs PDF CHM TXT RTF WEBHELP 下载(7zip压缩包) HTML HTMLs PDF CHM TXT RTF WEBHELP HTML版本的在线地址为: http://www.crifan.com/files/do

Android嵌入式组态软件

Android嵌入式组态软件 介绍了嵌入式组态软件结构,以及界面设计.功能选择区设计.辅助功能区设计和程序生成区设计Android应用,采用Java开发嵌入式组态软件. Android嵌入式组态软件是通过拖拽思想进行程序设计的.开发人员将组件拖拽到设计界面,通过双击指定组件,并调整组件的属性,达到所需的效果. Android嵌入式组态软件功能选择区设计部分包括界面设计.IO设计和数据库设计.功能选择区的界面设计分为六个模块,分别为布局.按钮类.文本类.时间类.特殊类.属性组成.布局类中包括绝对布

第七章 Android嵌入式组态软件

本章内容属于项目篇,主要介绍了嵌入式组态软件结构,以及界面设计.功能选择区设计.辅助功能区设计和程序生成区设计Android应用,采用Java开发嵌入式组态软件. Android嵌入式组态软件是通过拖拽思想进行程序设计的.开发人员将组件拖拽到设计界面,通过双击指定组件,并调整组件的属性,达到所需的效果. 一.界面设计 1>创建一个Java工程,名称DroidDraw: 2>在目录org\droiddraw下会有一个main函数作为入口函数,然后进行界面初始化. 二.界面内容添加 将窗口进行分块

嵌入式开发前景分析

谈起嵌入式开发前景,无外乎说到当前对这项技术的应用如何?若一项技术应用狭窄,无论如何也成不了大气候.谈到嵌入式技术,可能除计算机方面相关专业人士外很少有人能够涉足了解.其实应用到嵌入式技术的产品已经渗透到我们生活的方方面面.从人们的生活到工业化生产,从银行.医疗到航空航天领域,嵌入式系统无处不在.从我们生活的智能化.工业的自动化.国防的现代化中都可以找到嵌入式系统的踪迹.那么,嵌入式开发的前景究竟如何?就一起来分析一下. 嵌入式应用领域 就目前的中国市场来讲,IT技术已经进入高速发展阶段,互联网

【嵌入式开发】 Bootloader 详解 ( 代码环境 | ARM 启动流程 | uboot 工作流程 | 架构设计)

作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42462795 转载请著名出处 相关资源下载 :  -- u-boot 源码 : http://download.csdn.net/detail/han1202012/8342761 -- S3C2440 文档 : http://download.csdn.net/detail/han1202012/8342701 -- S5PV210_iROM_Applicati