DNW for CentOS7

原文转自 http://blog.csdn.net/david_xtd/article/details/26088299


最近跟着国嵌的课程玩OK6410,国嵌用的是红帽企业版6,我自己硬盘装的CentOS7,发现国嵌的dnw用不了,在网上找到这个,可以用。



1. dnw由两部分构成:USB驱动和下载工具,USB驱动便是secbulk文件夹,下载工具是DNW文件夹

    下载地址:http://files.cnblogs.com/lixiaoming90/dnw_linux.rar

     文件名:DnwLinux.rar

   

2.  安装dnw

     解压缩,之后会看到dnw_linux文件夹,进入该文件夹

     $ cd dnw_linux

     $ ls

     $ /dnw   /secbulk

 

     2.1  首先修改、编译和安装驱动

     进入secbulk文件夹,输入编译命令,编译成模块。(我自己修改了Makefile,因此大家只需make就可编译,make clean 就可清除编译。修改后的Makefile如下:

obj-m := secbulk.o
KDIR := /lib/modules/`uname -r`/build
PWD  := $(shell pwd)

default:
	$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
clean:
	$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) clean
	rm -rf *.order *.symvers

     在修改secbulk.c中代码,将0x5432改为0x04e8(不同的flash要在那个表单中加入一些设备相关的信息类似ID号,在程序加载的时候自动读取芯片内部ID和这个相比较,没有注册的设备是不会被系统支持的,可以通过lsusb获得idProduct和idVendor,需要在插上板子,并准备下载时此时设备连上时lsusb,0x04e8:0x1234),代码如下:

static struct usb_device_id secbulk_table[]= {
	{ USB_DEVICE(0x04e8, 0x1234)},
	{ }
};


    至此,代码修改完毕!

     $ make

之后在文件夹中会有secbulk.ko模块文件

加载该模块到内核(注意:需要root权限)

     $ sudo insmod secbulk.ko

     加载后用dmesg命令可以看到模块已经成功加载
     [  238.007970] secbulk:secbulk loaded
     [  238.009101] usbcore: registered new interface driver secbulk

     常见问题: can not open /dev/secbulk0,  则表示该模块没有加载成功或者dnw没有root权限

     通过lsmod可以看看加载成功没。

     $ lsmod | grep secbulk

     2.2 编译和安装dnw(这里在原博文章基础上做了点修改)

     进入dnw文件夹

    $ cd dnw

     修改dnw.c,找到如下代码处:

   printf("Writing data...\n");
   size_t remain_size = file_stat.st_size+10;

     在其前面加上下面两句:

/*****************************/
file_buffer [file_stat.st_size + 8] = sum & 0xff;
file_buffer [file_stat.st_size + 9] = sum >> 8;
/*****************************/

	int target_addr;
	if( 3 != argc )
	{
		printf("Usage: dwn <filename> <address>\n");
		return 1;
	}
	target_addr=strtol(argv[2],NULL,0);
 
 
*((unsigned long*)file_buffer) = target_addr; 	//load address 用target_addr替换原来的固定的地址,这样方便在命令行更改地址    

      代码修改完毕,像一般的程序一样编程为可执行性文件

    $ gcc –o dnw dnw.c

    可能会有一些警告,不过可以忽略。在dnw下生成dnw工具

    将dnw复制到/bin目录下,这样就可以在任意文件目录下调用dnw命令。

   

    温馨技巧: 因为要用dnw的话,要确保secbulk驱动加载到内核,为了避免每次都要手动加载,因此修改/etc/init.d/rc.local文件(root权限),在后面加上下面一句:

     insmod /….你的secbulk.ko文件目录/secbulk.ko

     保存退出完事。

3. dnw运用

    我用dnw的主要目的是用来下载裸机程序,dnw的用法也很简单。

当开发板等待USB传输数据是 

dnw <filename> <tartet_addr>



基于bert实现关系三元组抽取python源码+数据集+项目说明.zip基于bert实现关系三元组抽取python源码+数据集+项目说明.zip基于bert实现关系三元组抽取python源码+数据集+项目说明.zip基于bert实现关系三元组抽取python源码+数据集+项目说明.zip基于bert实现关系三元组抽取python源码+数据集+项目说明.zip 个人大四的毕业设计、课程设计、作业、经导师指导并认可通过的高分设计项目,评审平均分达96.5分。主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 [资源说明] 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设或者课设、作业,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96.5分,放心下载使用! 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),供学习参考。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值