Chinaunix首页 | 论坛 | 博客
  • 博客访问: 751118
  • 博文数量: 98
  • 博客积分: 4934
  • 博客等级: 上校
  • 技术积分: 1151
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-12 19:55
文章分类

全部博文(98)

文章存档

2014年(1)

2013年(2)

2012年(4)

2011年(25)

2010年(33)

2009年(33)

分类: 嵌入式

2014-07-29 15:44:46

开发环境:ubuntu12.04+vmware

1:先解压dnw_for_linux.tar.gz(压缩包如附件)dnw_for_linux.rar

点击(此处)折叠或打开

  1. sudo tar -xvf dnw_for_linux.tar.gz

2:进入dnw_for_linux/secbulk/目录下,编译生成secbulk.ko文件

点击(此处)折叠或打开

  1. make -C /lib/modules/`uname -r`/build M=`pwd` modules
之后通过如下语句加载模块

点击(此处)折叠或打开

  1. sudo insmod ./secbulk.ko
完成后,敲入命令dmesg | grep secbulk看看是否加载成功,如若出现下面提示,表示已经OK

点击(此处)折叠或打开

  1. secbulk:secbulk loaded
  2. usbcore: registered new interface driver secbulk
另外,对于使用dnw的话,要使secbulk驱动加载到内核,为了避免每次都要手动加载,可以在/etc/init.d/rc.local文件最后面加入如下语句,以后可自动加载

点击(此处)折叠或打开

  1. insmod /secbulk.ko文件所在路径/secbulk.ko
3:修改dnw_for_linux/dnw/dnw.c文件,vim dnw_for_linux/dnw/dnw.c
   找到如下语句

点击(此处)折叠或打开

  1. printf("Writing data...\n");
  2. size_t remain_size = file_stat.st_size+10;
  3. size_t block_size = remain_size / 100;
  4. size_t writed = 0
   在其前面加入下面两句,修改后如下

点击(此处)折叠或打开

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

  3. printf("Writing data...\n");
  4. size_t remain_size = file_stat.st_size+10;
  5. size_t block_size = remain_size / 100;
  6. size_t writed = 0
之后再对修改后的dnw.c进行编译,生成dnw

点击(此处)折叠或打开

  1. gcc -o dnw dnw.c
同时将dnw复制到/usr/local/bin目录下,这样就可以在任意文件目录下调用dnw命令了。

4:此时可以测试一下dnw能否使用
   这里使用supervivi,打开两个终端,一个输入minicom命令,打开串口调试,使其进入等下下载的命令状态。
   另一个终端中输入dnw /要下载文件的路径,若正常,会显示如下
  
   如果出现“can not open /dev/secbulk0”的提示,可以尝试使用sudo dnw的方法加载权限来解决。
   到目前为止,基本上已经介绍完dnw的使用,写这个文章主要还是为日后方便查阅,好记性不如烂笔头啊。
阅读(2520) | 评论(0) | 转发(0) |
0

上一篇:Linux-2.6.30.4在2440上的移植之内核

下一篇:没有了

给主人留下些什么吧!~~