下载地址:http://download.csdn.net/download/plaza02/1011140

包含两个工具:scebulk(USB驱动) 、dnw(下载工具)

解压缩后,进入该文件夹

cd /dnw/dnw_linux/scebulk/

(1)安装secbulk

先用USB线连接开发板与电脑,打开开发板电源,终端执行dmesg命令

找到这样的信息:

(可以先执行dmesg -c 清除之前的记录信息,上电,再dmesg)

可以得知,开发板 idVendor=04e8, idProduct=1234 , 记住这两个数

打开下载的dnw包,进入secbulk目录,编辑secbulk.c文件,找到这句:

static struct usb_device_id secbulk_table[]= {

{ USB_DEVICE(0x5345, 0x1234)},

{ }

};

将USB_DEVICE里的两个数改成前面的idendor和idProduct,保存退出。

static struct usb_device_id secbulk_table[]= {

{ USB_DEVICE(0x04e8, 0x1234)},

{ }

};

执行:make -C /lib/modules/`uname -r`/build M=`pwd` modules

执行成功在当前目录会出现secbulk.ko。

PS:在secbulk.c中,找到

#define BULKOUT_BUFFER_SIZE32

这句,将其修改为 64或512,下载速度会极大提升

加载模块模块到Linux内核:

执行:insmod secbulk.ko

可以用:lsmod | grep secbulk 来查看是否加载成功

lsmod | grep secbulk secbulk 2270 0

用USB线连接开发板和电脑,打开开发板电源,虚拟机挂载开发板USB下载端,执行dmesg命令,诺出现:

说明连接成功

开机的时候不会自动加载.ko文件,这样每次都要先加载才可以使用,此时将其加入开机脚本,

使其得到自动加载,编辑/etc/init.d/rc.local 在最后加上 insmod /所在路径/secbulk.ko。

(2)安装dnw

上面给出的dnw下载地址需要进行如下修改:

打开dnw.c文件,找到

printf("Writing data...\n");

size_t remain_size = file_stat.st_size+10;

size_t block_size = remain_size / 100;

size_t writed = 0;改为

printf("Writing data...\n");

size_t remain_size = file_stat.st_size+10;

size_t block_size = remain_size;

size_t writed = 0;便可正常在linux下使用dnw。

2.测试

编写一个简单的点亮LED灯程序测试是否可以正常烧写。

#start.S

#define GPJ2CON 0xE0200280

#define GPJ2DAT 0xE0200284

.global _start

_start:

// 第1步:将0x00001111写入0xE0200280位置(GPJ2CON)

// 即设置GPJ2CON0~GPJ2CON3共4个引脚为输出模式

ldr r0, =0x00001111

ldr r1, =GPJ2CON // ldr伪指令

str r0, [r1] // 寄存器间接寻址,把r0中的数写入到以r1中的数为地址的内存中去

// 第2步:将0b00001010写入0xE0200284位置(GPJ2DAT)

// 即设置GPJ2DAT0~GPJ2DAT3为0b00000101

ldr r0, =0b00001010

ldr r1, =GPJ2DAT

str r0, [r1]

b . // 死循环,程序停留在这里,.表示当前指针的地址

// 裸机程序是直接在CPU上运行的,CPU会逐行运行裸机程序直至CPU断电关机

// 如果裸机程序全部被执行完了CPU就会跑飞(跑飞结果未定义)

// 为了不让CPU跑飞即在整个裸机程序执行完后添加死循环程序参考自:http://blog.csdn.net/rston/article/details/51065661

编写Makefile:

all: start.o

arm-none-linux-gnueabi-ld -Tgecboot.lds -o gecboot.elf $^

arm-none-linux-gnueabi-objcopy -O binary gecboot.elf gecboot.bin

%.o : %.S

arm-none-linux-gnueabi-gcc -g -c $^

%.o : %.c

arm-none-linux-gnueabi-gcc -g -c $^

.PHONY: clean

clean:

rm *.o *.elf *.bin执行:make

生成 gecboot.bin文件。

通过dnw下载数据

将uboot下载到内存中运行,这里参考了GEC210开发板附带的《GEC210开发板使用快速入门文档》里的下载过程,所以下面的操作可能只适用于GEC210开发板。

1.连接好串口线、USB线,将启动开关拨至SD-BOOT处(但不要插上SD卡,它会自动以USB启动),打开电源;

2.打开另外一个终端,进入dnw.c所在文件夹,修改dnw.c中load_addr的地址为0xd0020010,保存,编译:

gcc -o dnw dnw.c

PS:0xd0020010为gec210_usb.bin文件下载地址,该文件初始化210处理里的相关寄存器;

0x23e00000为uboot、内核、文件系统等文件烧写地址

把gec210_usb.bin复制到linux中,执行:

./dnw gec210_usb.bin

显示结果:

3.重新修改dnw.c,load_addr为0x23e00000,保存,编译,

执行

./dnw /gecboot.bin

出现如下结果的同时,可观察到GEC210开发板上2个LED灯亮起。

至此,DNW已可正常在linux下使用。

诺出现“can not open /dev/secbulk0”,可能是未获得root权限,或者尝试重新编译secbulk。

补充:在linux下,可通过kermit串口工具实现串口linux输出。

安装kermit:

sudo apt-get install ckermit配置:

gedit ~/.kermrc添加如下内容:

set line /dev/ttyUSB0 //我用的是USB转串口 如果是串口的话是ttyS0

set speed 115200

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

c

保存退出。

连接开发板,通电,先

ls /dev/ttyUSB*找到开发板串口号,如果不是ttyUSB0,则修改~/.kermrc中的相应端口号。

终端中输入kermit,出现

则成功连接,接下来如有什么操作,可以在这个终端上显示串口输出信息。

若出现:SET SPEED has no effect without prior SET LINE ,可能是以下情况

1.没有以root运行,kermit需要以root身份运行。也可以普通用户用sudo来执行,但在我的机子上,普通用户执行sudo kermit会提示“sudo:kermit:command not found”,此时,kermit用绝对路径可解决问题:sudo /usr/local/bin/kermit

2.有另一个终端已经运行了kermit,占用了串口,此时也会出现Locked by process的提示。可以通过ps -aux|grep kermit 来查看是否有其他进程在使用kermit。

3.串口设备名称不匹配。在kermrc配置中的设备名称为ttyUSB0,但有时候可能为ttyUSB1。可通过ls /dev 来查看设备名称,并根据实际情况更改配置文件。

终端当前操作:ctrl + \ + c

退出kermit: ctrl + \ + z

linux虚拟机 dnw,linux下安装及使用DNW相关推荐

  1. Linux(ubuntu)下安装anaconda(64位)并配置jupyter notebook远程访问

    Linux(ubuntu)下安装anaconda(64位)并配置jupyter notebook远程访问 Anaconda指的是一个开源的Python发行版本,其包含了conda.Python等180 ...

  2. wireshark使用教程 linux,Linux入门教程:ubuntu下安装wireshark(以及配置非root),这个强大的工具可以捕...

    Linux入门教程:ubuntu下安装wireshark(以及配置非root),这个强大的工具可以捕 Wireshark是世界上最流行的网络分析工具.这个强大的工具可以捕捉网络中的数据,并为用户提供关 ...

  3. linux系统(ubuntu)下安装exe文件

    linux系统(ubuntu)下安装exe文件 昨天将家中的旧笔记本翻出来安装了ubuntu20.04.1,想在电脑中安装exe文件时,不能直接打开. 于是借鉴网络中的方法(https://blog. ...

  4. 永久解决Linux(Ubuntu)下安装CH340驱动问题

    永久解决Linux(Ubuntu)下安装CH340驱动问题 出现的问题 出现的问题 当我们用make对CH340的文件进行构建的时候,大多数情况是会报这样的错误 下面提供一种永久解决的方法 首先打开下 ...

  5. 在Linux、ubuntu 11下安装无线网卡 、杂牌无线网卡、ndiswrapper的使用

    本片文章是之前在百度空间所写的(2011-10-11),由于百度空间已无法浏览.考虑本文还有一定实用性,固转载至此. 原百度链接:http://hi.baidu.com/ccboyhi/blog/it ...

  6. Linux和Windows系统下:安装Anaconda、Paddle、tensorflow、pytorch,GPU[cuda、cudnn]、CPU安装教学,以及查看CPU、GPU内存使用情况

    Linux和Windows系统下安装深度学习框架所需支持:Anaconda.Paddlepaddle.Paddlenlp.pytorch,含GPU.CPU版本详细安装过程 1.下载 Anaconda ...

  7. VMware虚拟机里centos7下安装mysql5.6并授权远程连接Navicat

    正文内容 这节来安装Mysql5.6,并远程授权连接本地windows的Navicat,可以根据以下步骤安装.此文章为自己收藏,必要时拿出来直接用的,有需要的友友可以查看查看的.文章图片有借助于网络的 ...

  8. Linux 64位 CentOS下安装 Docker 容器,启动、停止

    一.Docker简介 Docker 提供了一个可以运行你的应用程序的封套(envelope),或者说容器,是轻量级的"容器引擎+映像仓库",在LXC(linux轻量级容器)的基础上 ...

  9. mssql linux版本,在 Mac 下安装 MSSQL for Linux

    我的开发环境一直是 Mac,最近一个项目要用到 MSSQL,因此开始尝试直接在 Docker for Mac 下运行 MSSQL for Linux 版本(之前只能在 Windows 环境下安装 MS ...

  10. centos 下安装mysql,linux(Centos7)下安装mysql8.0.18的教程图解

    1 获取安装资源包 mysql-8.0.18-1.el7.x86_64.rpm-bundle.tar 提取码: rsif 2 在/usr/local目录下新建目录mysql8 3 将下载的资源包(my ...

最新文章

  1. PCL:英文参考链接
  2. 海康威视 | AI算法实习生招聘(3D检测/分割/多模态融合)
  3. Visual Studio 2010 and .NET 4 RTM中文版发布
  4. python接口自动化测试框架(post提交添加变量)
  5. 忙里偷闲看了几部片子
  6. HSRP和VRRP在企业网中的应用
  7. cent os数据库安装
  8. 斯坦福大学深度学习与自然语言处理第一讲引言
  9. div超出部分滚动并且隐藏滚动条
  10. c语言指针字符串逆序存放,C语言指针实现字符串的反转
  11. 深入解析ext2文件系统之mke2fs
  12. springboot入门(项目)
  13. iphone4 base64 mp3 无法解析 html5,javascript - 如何使用HTML5在firefox上播放base64音频数据? - 堆栈内存溢出...
  14. java向Excel文件写入数据
  15. navicat中看sql执行计划
  16. 网课答题查询助手 内置多个接口
  17. qq音乐Java应用240320_TM320240E中文资料及应用电路
  18. (WSI分类)WSI分类文献小综述
  19. Nofollow标签的写法以及运用
  20. dhcp计算机毕业论文,计算机网络毕业设计(论文)dhcp在校园网中的应用.pdf

热门文章

  1. FreeTextBox编辑框遇到的问题
  2. 史上z..zui难回答的26个问题(1)
  3. script for kettle send mail contect
  4. 《面向对象分析与设计》一3.7 例题
  5. 嵌入式系统与普适计算
  6. 神经同步预测儿童学习新单词的能力
  7. 全国计算机高级技工查询,高级技工证查询
  8. Golang创建DLL
  9. 台式计算机网卡驱动不能正常使用,系统提示“您的网卡驱动程序不正常!”怎么办 是什么原因...
  10. 一文带你轻松掌握多种编程范式