zoukankan      html  css  js  c++  java
  • 使用kermit通过串口升级uboot

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

    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",再次进入连接模式,通过串口与开发板通信。

    至此,举例完毕!

  • 相关阅读:
    关于Android中图片大小、内存占用与drawable文件夹关系的研究与分析
    EventBus完全解析--组件/线程间通信利器
    【凯子哥带你学Framework】Activity启动过程全解析
    【凯子哥带你学Framework】Activity界面显示全解析
    APP的缓存文件到底应该存在哪?看完这篇文章你应该就自己清楚了
    全面理解Context
    Activity的四种launchMode
    Android动态加载框架汇总
    Android中Shape的使用
    Ninject简单的Demo
  • 原文地址:https://www.cnblogs.com/pyhou/p/7196622.html
Copyright © 2011-2022 走看看