1、编译好SDK之后,在osdrv/pub/image_uclibc生成我们需要的镜像,可以看一下文件大小
 接下来我们需要用到uboot、kernel、rootfs,其中rootfs是rootfs_hi3518ev200_64k.jffs2
2、烧录原理
开发板中用的是spiflash,有16M的大小。通过主芯片提供的isp下载的机制来下载。通过串口发送数据给主芯片(hi3518e),主芯片接收完数据后暂存到内存中去,之后通过spi接口将数据写入flash中。
这种方式不要求flash中有任何工具,所以很方便。
isp代码固化在了在了芯片的irom中。
一启动会默认的先从uart中接收数据(第一启动顺序),如果烧录工具和芯片通信的上,就会触发isp下载。如果没有就会进行第二顺序启动,即从flash中load代码,里面的细节就先不了解了。
3、烧录工具HI_Tool
这个工具是基于java开发的,所以要先安装jre-6u45-windows-i586,安装完后,
启动Hi3518E V200R001C01SPC030\01.software\pc\Hi_TOOl目录中的HiTool.exe
  点击hitool平台中的hiburn,进入到工具界面。
 之后可以看到以下界面,hitool支持串口和网路下载,这里我们仅使用串口进行下载,网路这块,以后有机会在试试看吧。
首先一开始要给开发板接上串口和电源,然后再打开这个hitool工具。
 1、如果一开始看不到串口的话,点击刷新,就会出现串口号。
 2、传输方式选择串口。
 3、选择要下载的文件,只能是我们事先编译好的uboot。
 4、器件是spi
 5、开始地址和长度这个根据我们自己设置的大小来设即可,但不能小于烧录文件的大小。
最后点击烧录就可以开始烧录了。如果还是提醒串口啥的,那就先关闭这个工具,在开发板不断电的情况下,再从第一步开始做起。
开始烧录的时候,会出现以下窗口,但是进度条不会动的,这时候就要将开发板断电再上电,就可以正常下载了,这个下载方式和51单片机一模一样。下载完成会有提示。
4、这里只能下载我们编译好的uboot,否则下载一半会出现串口错误。主要原因是因为hitool的下载机制
、它先将我们要下载的东西存放在内部内存中(0x81000000)然后使用uboot的flash命令去烧写。
以我们现在烧录的uboot来说
1、Send command: getinfo version
2、Send command: getinfo bootmode
3、Send command: getinfo spi
4、Send command: sf probe 0
5、Send command: sf erase 0x0 0x100000
6、Send command: sf write 0x81000000 0x0 0x50000
7、Send command: reset
5、因为嵌入式系统为了简化,没有使用分区表来自动管理flash,所以都是事先定死的。所以在部署一个嵌入式系统前都要人为的定下一个分区
分区名 分区大小 起始地址 截至地址
bootloader: 1M 0x00000000 0x00100000
kernel: 3M 0x00100000 0x00400000
rootfs: 12M 0x00400000 0x01000000
6、接下来的kernel和rootfs则需要用tftp的下载方式下载到内存中去,然后再用uboot中的命令来下载到flash中。
7、tftp更新并重新烧写uboot的命令序列:
mw.b 0x82000000 ff 0x100000
tftp 0x82000000 u-boot-hi3518ev200.bin
sf probe 0
sf erase 0x0 0x100000
sf write 0x82000000 0x0 0x100000
--------------------------------------------------
tftp更新并重新烧写kernel的命令序列:
mw.b 0x82000000 ff 0x300000
tftp 0x82000000 uImage_hi3518ev200
sf probe 0
sf erase 0x100000 0x300000
sf write 0x82000000 0x100000 0x300000
---------------------------------------------------
tftp更新并重新烧写rootfs的命令序列:
mw.b 0x82000000 ff 0xc00000
tftp 0x82000000 rootfs_hi3518ev200_64k.jffs2
sf probe 0
sf erase 0x400000 0xc00000
sf write 0x82000000 0x400000 0xc00000
8、正确的bootcmd和bootargs对应的设置命令:
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)
其中mtdparts是告诉内核将来我们的flash各分区大小是和名字是啥。
到内核后会打印出我们设置是分区名称和范围

第三章:使用HiTool下载程序相关推荐

  1. 第三章 Hello World入门程序

    源代码: .java--通过javac编译--字节码文件: .class 注释格式: // 单行注释(不需要完整占一行)/*无论这里占多少行,只要是在这个范围之内都算多行注释(区块注释)*/ 3.1 ...

  2. PTA c#PTA第三章练习答案【程序设计基础】

    目录 7-1 简单输入输出 (10 分) 7-2 可爱的Tommy (10 分) 7-3 华氏温度转化为摄氏温度 (10 分) 7-4 打妖怪 (10 分) 7-5 计算银行存款的本息 (10 分) ...

  3. 北邮CSAPP第三章之数据格式与程序编码

    程序的机器级表示 本章学习内容:汇编代码 高级语言屏蔽了程序的机器级实现. 用高级语言编写的程序可以在不同的机器上运行,汇编代码则于特定机器密切相关 学习汇编代码能理解编译器优化能力,并分析代码中隐含 ...

  4. DIP第三章习题解答

    数字图像处理 第三章课后作业 下载地址:https://download.csdn.net/download/qq_44143405/1254953https://download.csdn.net/ ...

  5. 大学c语言第三章作业,华中科技大学光电子学院C语言第三章

    <华中科技大学光电子学院C语言第三章>由会员分享,可在线阅读,更多相关<华中科技大学光电子学院C语言第三章(20页珍藏版)>请在装配图网上搜索. 1.第三章 简单程序设计 1. ...

  6. Python程序设计第三章测验总结

    第三章 顺序和分支程序应用 3.1 猜数字与二分法 1.如果需要提前结束循环,可以使用: A.break B.continue C.else D.if 解:A 2.语句x=input()执行时,如果从 ...

  7. c语言程序设计试题汇编第三版勘误,c语言程序设计基础教程----勘误记录.pdf

    程序设计基础教程--C 语言版 勘误条目: 目录:2.3 节的"标识符"改到 1.7.1 节 第一章 C 语言程序设计基础 第二章 C 语言中的数据类型及其基本操作 P3317: ...

  8. C#图解教程(第三章)

    C#图解教程第三章 3.1 C#程序是一组类型声明 3.2 类型是一种模板 3.3 实例化类型 3.4 数据成员和函数成员 3.5预定义类型 3.6用户定义类型 3.7 栈和堆 3.7.1 栈 3.7 ...

  9. 嵌入式linux 第二章:软件下载

    嵌入式linux 目录: 第一章:vi 使用 第二章:软件下载 第三章: 软件下载 嵌入式linux 一.软件下载模式 1.deb 1.1 下载 1.2 删除 2.apt-get 2.1 下载 2.2 ...

  10. )类 新建javafx程序时_第三章 第一个OpenCV的JavaFX应用程序.md

    # 第三章 第一个OpenCV的JavaFX应用程序 --- ***注意***:我们假设您现在已经阅读了之前的教程.如果没有,请在[http://opencv-java-tutorials.readt ...

最新文章

  1. 命令行避免输入错误文件名_GitHub 60000+ Star 登顶,命令行的艺术
  2. 人人有奖 | 六一儿童节,大人也有礼品拿!
  3. setContentView( )方法
  4. mysql中事件失效如何解决
  5. [批处理]使用Log.io监控日志变化
  6. wxWidgets:wxSashEvent类用法
  7. SDNU 1062.Fibonacci(矩阵快速幂)
  8. 除了工商银行,目前中国还有那些宇宙级别的企业?
  9. java中解密技术是什么_详解Java 加密解密技术的分类和归纳
  10. 51Nod 1530 稳定方块
  11. Vue中的静态类型检查
  12. Django完整的开发一个博客系统
  13. 智能优化算法:海鸥优化算法-附代码
  14. phonegap 总结
  15. Atitit 圣爱提拉克斯在会议上 2019年10月中旬的一天,有过这样的事。 这天,地方上风大。出乎人们意料之外,到东海岸一个地方访问的亲爱的领导者圣爱提拉克斯要同人们一道开会。主持人着了慌,
  16. 南昌计算机学校哪家最可靠,南昌问题孩子管教学校哪家靠谱
  17. var that =this的用法详解
  18. HTML基础-跟着李南江学编程
  19. 后天淘宝客cms系统源码
  20. 划分离散数学定义_《离散数学》学习记录 - 集合论

热门文章

  1. 微信浏览器自动播放多个视频黑屏,h5video,videojs
  2. Java 征途:行者的地图(推荐好文)
  3. HTML CSS 常用英语单词
  4. cookie httponly ajax,为什么jquery的.ajax()方法没有发送我的会话cookie?
  5. tensorflow2实现vnet
  6. 电信行业数据安全风险评估案例 - 数据安全治理之数据安全风险评估白皮书
  7. 2013 EE 排名
  8. FreeIPA问题记录
  9. GOM登录器技术研究,闪退、掉线的原因分析和解决
  10. 怎样才能写好一份高质量的市场需求文档(MRD)