ok6410[002] ubuntu1604系统下搭配ckermit和dnw基于RAM的裸机程序调试环境

ubuntu1604系统下搭配ckermit和dnw基于RAM的裸机程序调试环境

系统:  ubuntu16.04

裸板: 飞凌公司OK6410开发板

目标:搭建基于ubuntu1604系统和基于RAM的裸机程序开发环境

1、安装配置ckermit

在ubuntu1604下一般做裸板开发时都是使用ckermit作为远程通讯终端,下面我们就开始讲解下其安装与配置。

1.1、安装ckermit

在ubuntu系统下安装ckermit,使用

  1. sudo  apt-get  install  ckermit
 

即可实现自动安装。

1.2、配置

在当前用户的根目录下,即~所指向的目录,例如:/home/alston,这个目录就是我的根目录,这里的alston是我当前用户名。

在用户的根目录中创建[.kermrc]文件,并在该文件中,填入如下内容:

  1. set line    /dev/ttyUSB0
  2. set speed   115200
  3. set carrier-watch   off
  4. set handshake   none
  5. set flow-control    none
  6. robust
  7. set file type   bin
  8. set file name   lit
  9. set rec pack    1000
  10. set send pack   1000
  11. set window  5
 

2、配置安装dnw的下载环境

2.1、安装dnw

这里的安装dnw其实就是从网站上下载【dnw4linux-master.zip】,并把这个文件解压到一个目录中。

【下载地址:  https://github.com/Qunero/dnw4linux】

下载完代码后,一定要阅读里面的README

1、源码说明:

本源代码收集自网络,经过整理和加入宏定义,使其适用于OK6410开发板;对

源码进行了适当的注释和错误纠正;同样以GPL协议发布;

2、使用说明:

2.1 编译

直接在解压后的目录中make即可;然后在对应的子目录中可以找到编译好的文件;

更方便的做法:make install 会直接将相关文件编译好,然后放到当前目录下,

编译好的文件为:

dnw     ---    用于传输数据的软件,用法: dnw filename

secbulk.ko  --- 识别下载用USB的驱动; 用法: sudo insmod secbulk.ko

2.2 自动化

在编译成功后,完成下列步骤方面以后使用:

2.2.1 将dnw放到系统路径: sudo cp dnw /usr/sbin/

2.2.2 将secbulk.ko驱动设为自动加载:

先在住目录建立mydriver目录:mkdir ~/mydriver

将驱动放入自定义mydriver中:cp secbulk.ko ~/mydriver/

修改/etc/rc.d/rc.local文件,末尾加入: sudo insmod $HOME/secbulk.ko

注意: 将上面的$HOME替换成实际的绝对路径,比如: /home/qulory

2.3 清理

直接执行make clean, 让你的源码目录干干净净;

2.4 使用

注意,当前编译好的dnw在32位linux可用,但是secbulk.ko驱动文件需要自己编译

必须同当前使用的内核的版本一致,内核版本升级后也需要重新编译;

3、移植帮助:

要成功移植到类似的开发板,需要以下2步:

3.1 驱动处理:

进入secbulk_driver子目录,修改文件secbulk.c中的关于DOWNLOAD_USB_ID_MAJOR

和DOWNLOAD_USB_ID_MINOR的宏定义,让其与你的usb对应,可以通过lsusb命令查看

获得该id的信息;

3.2 dnw下载地址的处理:

进入dnw_src目录,修改dnw.c文件中DOWNLOAD_ADDR的定义,将其设为你的开发板

的下载地址;

2.2、配置dnw

这里的配置dnw其实就是修改压缩包里的【secbulk.c】文件,修改其中的两个宏,获取要运行dnw的PC上的这两个宏值,使用lsusb获取如下

ok6410[002]  ubuntu1604系统下搭配ckermit和dnw基于RAM的裸机程序调试环境

修改宏值如下:

  1. #define DOWNLOAD_USB_ID_MAJOR 0x1a86
  2. #define DOWNLOAD_USB_ID_MINOR 0x7523
 

之后,退到压缩包的第一级目录,使用make install编译dnw和dnw的USB驱动。

编译好之后,生成的程序可以直接作用与OK6410开发板。

3、使用dnw下载裸机程序

给开发板刷入uboot程序即可,并切换到nand flash启动。

3.1、进入下载模式

打开两个终端,一个输入ckermit命令,打开串口调试,当开发板加载uboot时按下PC上的空格键,使其停在下载模式,输入以下命令:

  1. SMDK6410# dnw 0x50008000
 

此时终端打印以下信息,说明USB连接成功,就等待你下载传输了。情况如下:

ok6410[002]  ubuntu1604系统下搭配ckermit和dnw基于RAM的裸机程序调试环境

3.2、下载

在另外一个终端输入以下命令,下载文件:

  1. $ sudo  dnw  -f  /你要下载的文件路径/文件名
 

3.3、运行裸机程序

现在你的程序已经下载到内存当中了,如果你想在内存中运行你的程序,只需要输入下面一句命令即可:

  1. SMDK6410#  go 0x50008000
 

执行go后,系统开始启动uboot,相应的裸机程序也会随之运行,不过因我们只刷了uboot,故此,uboot会一遍遍的重启,导致,程序也会一遍遍的重启,故,我们可以在程序的最后键入一个死循环,这样可维持我们的程序执行之后的状态。

至此,dnw的介绍结束,因为之前研究过Linux下的dnw使用,至今已有好久没用了,此次记录,一是方便以后回顾,二是也希望给新手一个指导。

上一篇:Gitlab_服务器安装配置


下一篇:Oracle EBS-SQL (PO-13):检查报价单.sql