转载,侵删

将uboot,kernel,rootfs下载到开发板上

1、为什么要下载

所谓下载,也称烧录,部署。

1.1、什么是u-boot

Hi3518EV200 单板的 Bootloader 采用 U-boot。
u-boot是一种普遍用于嵌入式系统中的Bootloader,Bootloader是在操作系统运行之前执行的一小段程序,通过它,我们可以初始化硬件设备、建立内存空间的映射表,从而建立适当的软硬件环境,为最终调用操作系统内核做好准备。Boot Loader的主要运行任务就是将内核映象从硬盘上读到RAM中,然后跳转到内核的入口点去运行,即开始启动操作系统。系统在上电或复位时通常都从地址0x00000000处开始执行,而在这个地址处安排的通常就是系统的Boot Loader程序。

1.2、什么是kernel

烧录完uboot之后,开始烧录kernel。Kerne是指大多数操作系统的核心部分。它由操作系统中用于管理存储器、文件、外设和系统资源的那些部分组成。操作系统内核通常运行进程,并提供进程间的通信。操作系统必须要以内核为基础运行,内核提供最基本的对计算机的操作,并且让计算机底层尽量安全和容易管理。

1.3、 什么是rootfs

根文件系统是内核启动时所mount的第一个文件系统,内核代码映像文件保存在根文件系统中,而系统引导启动程序会在根文件系统挂载之后从中把一些基本的初始化脚本和服务等加载到内存中去运行。由于init=/linuxrc,因此,在文件系统挂载后,运行的第一个程序就是根目录下的linuxrc,而这是一个指向/bin/busybox 的链接,也就是说,系统起来后运行的第一个程序就是busybox。 busybox首先将试图解析/etc/inittab来获取进一步的初始化配置信息(参考busybox源代码init/init.c中的parse_inittab()函数)。而事实上,root_qtopia中并没有/etc/inittab这个配置文件,根据busybox的裸机,它将生成默认的配置。其中最重要的一个,就是new_init_action(SYSINIT,INIT_SCRIPT,""),也就决定了接下来初始化的脚本是INIT_SCRIPT所定义的值,这个宏的默认值是"etc/init.d/rcS"。

2、通过Hitool工具烧录uboot

注意:Hitool是基于JaveEE开发的,因此运行前必须安装jre-6u45-windows-i586。注意必须是这个版本,否则不能运行。

  • [ ] (1),打开Hitool,选择对应芯片,点击HiBure

  • [ ] (2),将软件按如下图所设置

    注意:在HI3518ESDK里面的\package\image_uclibc_hi3518ev200里面提供了u-boot镜像,也可以是自己编译的。

  • [] (3),选中,烧写

  • [] (4),关闭Hitool,将开发板的串口连接到SecurtCRT,重启开发板,打断3s启动进入uboot模式

  • [] (5),print打印默认环境变量

3、通过tftp网络烧录

此时开发板进入uboot模式

3.1 tftp烧录之前的准备条件

  • [ ] (1),开发板要用串口线,网线连接到PC机上,并用SecurtCRT连接串口。
  • [ ] (2),重启开发板进入u-boot的命令行下
  • [ ] (3),开发板和uboot之间能tftp网络能ping通

  • [ ] (4),准备镜像
    • 步骤1,镜像在osdrv/pub/image_uclibc中,先进入此目录
    • 步骤2,将相关镜像复制到tftpboot目录下
    • cp u-boot-hi3518ev200.bin uImage_hi3518ev200 rootfs_hi3518ev200_64k.jffs2 /tftpboot/ -f
    • cd /tftpboot/
    • ls
    • ls -l
    • cd ..
    • sudo chmod -R 777 tftpboot/
    • cd /tftpboot/
    • ls
    • ls -l
  • [ ] (5),开发板和ubuntu的设置:
    • ubutun:设置桥接到有线网卡,静态分配ip
    • HI3518E进入hisilicon模式[uboot],执行以下命令设置环境变量
        • set bootcmd 'bootm 0x82000000'
        • set bootargs mem=96M console=ttyAMA0,115200
        • set serveip 192.168.1.141
        • set ip 192.168.1.10
        • save
    • ping 192.168.1.141
  • [ ] (6),print

### 2.2、下载kernel

  • mw.b 0x82000000 ff 0x300000
  • tftp 0x82000000 uImage_hi3518ev200
  • sf probe 0
  • sf erase 0x100000 0x300000
  • sf write 0x82000000 0x100000 0x300000

### 2.3、下载rootfs

  • mw.b 0x82000000 ff 0xc00000
  • tftp 0x82000000 rootfs_hi3518ev200_64k.jffs2
  • sf probe 0
  • sf erase 0x400000 0xc00000
  • sf write 0x82000000 0x400000 0xc00000

### 2.4、设置bootcmd和bootargs以正确启动【此后每次tftpboot目录镜像更新,开发板都会同步跟新镜像】

  • set bootcmd 'sf probe 0;sf read 0x82000000 0x100000 0x300000;bootm 0x82000000'
  • set bootargs mem=32M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 mtdparts=hi_sfc:1024K(boot),3072K(kernel),12288K(rootfs)
  • save
  • reset 【即可重启系统】

02.将uboot,kernel,rootfs下载到开发板上的更多相关文章

  1. 03.将MPP部署到开发板上

    转载侵删 在一般的嵌入式开发中,只要将uboot,kernel,rootfs下载到开发板上,就可以进行程序开发了.但是海思又进一步的把一些常用视频编解码算法等封装到MPP平台中,进一步简化了工程师的开 ...

  2. buildroot管理uboot+kernel+rootfs

    鉴于自己制作根文件系统太麻烦了,所以想用buildroot管理uboot,kernel,另外还可以自动生产rootfs,于是花了两天研究了下buildroot的框架和使用,在自己的2440开发板上也跑 ...

  3. 下载uboot的调试版本到开发板的sdram中运行

    开发环境:开发板:FriendlyARM Tiny6410 主机:CentOS release 6.4 (Final) 开发板与主机通过串口线连接 调试用的uboot源码为开发板光盘提供的u-boot ...

  4. 【Android 系统开发】 编译 Android文件系统 u-boot 内核 并烧写到 OK-6410A 开发板上

    博客地址 : http://blog.csdn.net/shulianghan/article/details/40299813  本篇文章中用到的工具源码下载 : -- ok-6410A 附带的 A ...

  5. easycwmp在开发板上的配置

    原创作品,转载请注明出处 copyright:weishusheng   2015.3.18 email:642613208@qq.com 平台: Linux version 2.6.32-279.e ...

  6. FS210开发板上Qt4.7.0移植过程

    作者:冯老师,华清远见嵌入式学院讲师. 1. 搭建Qt开发环境平台 1.开发环境:ubuntu 12.04 2.交叉编译链:arm-cortex_a8-linux-gnueabi 3.开发板:FS21 ...

  7. 交叉编译环境以及开发板上-/bin/sh: ./hello: not found 转载自 http://blankboy.72pines.com

    交叉编译环境以及开发板上-/bin/sh: ./hello: not found 目标板是S3C2440.至于交叉编译环境的搭建就不多说了,网上很多教程. 搭建好了交叉编译环境后,第一件事就是传说中的 ...

  8. ARM开发板上iconv调用失败的解决方法

    当前流行的字符编码格式有:US-ASCII.ISO-8859-1.UTF-8.UTF-16BE.UTF-16LE.UTF-16.GBK.GB2312等,其中GBK.GB2312是专门处理中文编码的.而 ...

  9. 物联网操作系统HelloX已成功移植到MinnowBoard MAX开发板上

    在HelloX开发团队的努力下,以及Winzent Tech公司(总部在瑞典斯德哥尔摩)的支持下,HelloX最新版本V1.78已成功移植到MinnowBoard MAX开发板上.相关源代码已经发布到 ...

随机推荐

  1. gleez开发环境搭建

    一.虚拟主机目录配置 1.配置apache服务器 Apache是常用的web服务器,即常见的用来处理http协议,处理网页的. Apache的配置文件都存放在/etc/apache2/目录,这里有很多 ...

  2. The requested URL /phpmyadmin was not found on this server.

    这个报错,我弄了好久,第一次我以为我安装有问题,我就卸载重新安装了,但是在结果还是报这样子的错. 查找phpmyadmin的安装位置输入: sudo dpkg -L phpmyadmin 可以看到很多 ...

  3. ccf画图

    问题描述 在一个定义了直角坐标系的纸上,画一个(x1,y1)到(x2,y2)的矩形指将横坐标范围从x1到x2,纵坐标范围从y1到y2之间的区域涂上颜色. 下图给出了一个画了两个矩形的例子.第一个矩形是 ...

  4. 使用poi导出Excel,并设定单元格内容类型,抛出异常

    本例子使用的是HSSF,为Excel2003提供处理方案. 设定为输入类型为数值 import org.apache.poi.hssf.usermodel.DVConstraint; import o ...

  5. Eclipse SVN 合并分支/主干

    可以从主干合并到分支,也可以从分支合并到主干,根据需要可以选择合适的选项,如下图:

  6. UVALive 5840 数学题

    DES:给出三种材料A,B,C每种的个数.然后组合AB,BC,AC的利润.问能获得的最大利润是多少. 开始一点思路都没有.然后发现可以枚举其中两种的个数.那么最后一种就确定了.还是感觉很机智. #in ...

  7. poj3020 二分图匹配 最大独立集

    这是一道水题, 这里是最大流解法,之后再补 坑在又忘了反向建边了 题意:给你二维bool数组,让你求出能用多米诺骨牌覆盖所有 1 且骨牌最少的放法(因为多米诺骨牌1*2的结构方便描述,原题没有),原本 ...

  8. L1-010 比较大小

    本题要求将输入的任意3个整数从小到大输出. 输入格式: 输入在一行中给出3个整数,其间以空格分隔. 输出格式: 在一行中将3个整数从小到大输出,其间以“->”相连. 输入样例: 4 2 8 输出 ...

  9. 201621123010《Java程序设计》第13周学习总结

    1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 为你的系统增加网络功能(购物车.图书馆管理.斗地主等)-分组完成 为了让你的系统可以被多个用户通过网 ...

  10. Jmeter BeanShell 从数据库中获取数据并创建一个requesBody

    一.前言 在测试接口的时候常常会使用到数据库中的数据,当要使用大量的数据时,仅仅使用数据库查询是不够的.还需要使用自动化让操作更简便. 下面以一个简单的例子阐述一下如何使用beanShell让代码更简 ...