在开发板的启动选项中看到如下两行:

7: Load Boot Loader code then write to Flash via Serial.

9: Load Boot Loader code then write to Flash via TFTP.

可以通过串口升级uboot。之前都是通过TFTP升级的,现在既然可以通过串口升级,就试着升一下吧,不然心里总觉得少了点什么。

在板子启动的时候,输入“7”来选择通过串口升级uboot,然后看到下面的输出:

## Ready for binary (kermit) download to 0x80100000 at 57600 bps...

那么问题来了,kermit是什么?

通过搜索资料知道,kermit是一种简单的文件传输协议,可用于PC之间交换文件,以及从大型计算机下载文件到微机。该协议是由哥伦比亚大学的kermit项目组成员开发和维护的,是一个半双工的通信协议。有关kermit的详细资料请查看其官网:http://www.columbia.edu/kermit/ck80.html

ckermit串口工具

在Linux环境下使用较多的两款串口软件分别是minicom和ckermit,其中minicom用得最多,不少Linux发行版已经自带。但不少人反映minicom有时会有问题,u-boot开发者也都推荐使用ckermit,下面我们就来认识一下ckermit串口工具。

c-kermit是基于kermit文件传输协议的串口工具,其配置和使用较为简单,如下所示:

【功能】

1、支持kermit文件传输协议

2、自定义了一种脚本语言,可用于自动化工作

3、无论是网络通信还是串口通信,其操作是一致的,并支持多种硬件、软件平台

4、有安全认证、加密功能

5、内建FTP、HTTP客户端功能以及SSH接口

6、支持字符集转换

【安装】

$ sudo apt-get install ckermit

【配置】

c-kermit启动时,会从当前用户目录下查找.kermrc配置文件,因此我们先在$HOME目录下创建一个.kermrc文件,然后编辑文件内容如下:

set line /dev/ttyUSB0  # 根据实际情况填写

set speed 57600    # 根据实际情况填写

set carrier-watch off

set handshake none

set flow-control none

robust

set file type bin

set file name lit

set rec  pack 1000

set send pack 1000  # 这里可以改大一点,方便下载内核

set window 5

【使用】

kermit有两种工作模式:命令模式和连接模式,默认情况为命令模式。所谓连接模式,即可以从开发板中读取数据。

$ sudo kermit

这里使用root权限,直接进入命令模式。在该模式下输入"connect"或"c"则进入连接模式。

$ sudo kermit -c

使用这种方式启动ckermit,直接进入连接模式。从连接模式退回到命令模式先输入"[Ctrl]\",接着再输入"c"即可。

在命令模式下可以输入shell命令来进行相应的操作,如cd、ls、pwd等。

传输文件可以使用命令:send filename

退出ckermit可以使用命令:exit

保存log命令:log session

该命令则会在当前目录下生成一个session.log文件,该文件保存了本次会话的串口信息。

【举例】

步骤1:

$ sudo kermit -c

与开发板的串口建立连接。

步骤2:

上电,板子启动,输入"7",进入通过串口升级uboot等待状态。

步骤3:

输入"[Ctrl]\",在输入"c",进行ckermit命令模式。

步骤4:

输入发送文件命令:send uboot.bin

开始传送文件……

步骤5:

文件传送完毕,此时仍处于命令模式,输入"c",再次进入连接模式,通过串口与开发板通信。

至此,举例完毕!

使用kermit通过串口升级uboot的更多相关文章

  1. 用kermit通过串口往nandflash任意地址里烧写任何文件!

    1.安装kermit #apt-get install ckermit 2.使用kermit之前,在用户宿主目录下(/home/用户名/)创建一个名为.kermrc的配置文件,内容如下 : set l ...

  2. Hi3516开发笔记(六):通过HiTools使用USB/串口将uboot、kernel、roofts和userdata按照分区表烧写镜像

    若该文为原创文章,转载请注明原文出处本文章博客地址:https://hpzwl.blog.csdn.net/article/details/121706033红胖子(红模仿)的博文大全:开发技术集合( ...

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

    版本:v1.2   Crifan Li 摘要 本文主要介绍了如何在嵌入式Linux系统运行的时候,进行升级整个Linux系统,包括uboot,kernel和rootfs.以及简介Linux中的已有的通 ...

  4. 九鼎S5PV210开发板的SD卡启动、uboot tftp升级内核镜像

    Note: 我的S5PV210板子的磁盘是emmc版本,不是nandflash版本. 1. SD卡内烧录uboot镜像,然后作为启动盘来启动emmc中的内核镜像和根文件系统. 只要破坏emmc内的ub ...

  5. (三)主控板生级uboot与内核

    一.升级uboot 把我的电脑增加一个192.168.1.3的ip,方便升级boot. 1.连接串口,连接网口到GE1; 2.登陆电脑后到D:\MTG3000MAIN\first目录打开tftp32 ...

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

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

  7. U-BOOT 移植到友善之臂mini2440

    U-BOOT 移植到友善之臂mini2440 开发环境:ubuntu 10.10 编译器:友善之臂mini2440光盘自带arm-linux-gcc 4.4.3 一. 在denx官网下载源码,我所用版 ...

  8. linux下kermit工具的使用

    1.环境: ubuntu16.04 2.背景: 想更换下位机内核 3.使用kermit进行串口传输 举例:传输文件到下位机 2.1首先进入下位机的uboot 2.2 使用uboot自带的命令从串口接收 ...

  9. DM8127 更改调试串口为UART2

    1.uboot修改 1)修改宏定义 /*include/config/ti8148_evm.h*/ #define CONFIG_SYS_NS16550_COM2 0x48024000 #define ...

随机推荐

  1. Java问题解决:"错误:编码GBK 的不可映射字符"

    参考资料:http://blog.csdn.net/l1028386804/article/details/46583279 场景: 在使用javac编译java文件时出现以下错误: 解决方法: 使用 ...

  2. 关于Struts2的通配方法、转发重定向

    1.通配符 在配置struts.xml文件的时候,需要很多action,这时可以用到通配符找到与之对应的方法和类,当然实际开发中很少用到这种方法 struts.xml: <!--通配方法 *_* ...

  3. 蓝牙 - 小米手环3 NFC版BLE协议研究

    0x01 前言 最近买到了小米手环3nfc版本,基本上实现了我对手环的所有功能需求,高中的时候就缠线圈做过戒指一卡通,但是缺陷是不好看,而且只能储存一张卡,等 手环3nfc版我认为比较好的功能 可以储 ...

  4. Windows安装zookeeper 单机版

    首先需要安装JdK,从Oracle的Java网站下载,安装很简单,就不再详述. 1.下载zookeeper, https://mirrors.tuna.tsinghua.edu.cn/apache/z ...

  5. DAY 22初识面向对象

    一.两种编程思想 1.面向过程编程 核心是'过程',过程指的是解决问题的步骤,就是先干什么再干什么 基于面向过程思想编写程序相当于写一条流水线,是一种机械式的思维方式 优点:解决问题的思路清晰,可以把 ...

  6. C#通过DocX创建word

    网上有一些基础的东西,但是比如插入图片,就没有找到方案,最终自己摸索出来的. 1.首先通过Nuget获取引用,关键字:“DocX” 2.示例代码 class Program { static void ...

  7. UML序列图参考资料

    UML各个图的说明:http://www.uml.org.cn/oobject/201509015.asp?artid=16901 UML类图的说明:https://www.cnblogs.com/a ...

  8. <!--#include virtual='head.html'-->代码复用

    js限制input框只能输入数字:<input type="text" onkeyup="value=value.replace(/[^\d]/g,'')" ...

  9. OO的奇妙冒险1

    OO的奇妙冒险 ~OOP入门与字符串处理~ 目录 总体分析 作业内容分析 作业内容总结 互测的收获 公测互测bug分析与总结 不太正经的个人自嗨 总体分析 公测 中测(基础与进阶): 其实在我看来,从 ...

  10. [la P4487] Exclusive-OR

    [la P4487] Exclusive-OR Time limit 3000 ms  OS Linux You are not given n non-negative integers X0, X ...