|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
- U# h: c6 I6 W. q1 ~! w一直在Windows下开发,某些bug总是使我不能全心全意的信任Windows,从开发嵌入式开始,一直就想把开发环境转移到Linux环境下,特别是下载程序的时候,不过确实有Linux的开发环境,就拿下载程序来说,Linux下的minicom和dnw真的是很好用,同时也可以学习源代码。下面教你如何下载、安装、使用dnw。
7 I! x" K' i/ e B" x: j* W; @, D: \. L' a
1. dnw由两部分构成:USB驱动和下载工具,USB驱动便是secbulk文件夹,下载工具是DNW文件夹# d8 i! ]5 Z; N
% G- K" Y. }* E1 O# _$ o4 s& o
2. 安装dnw3 f+ `1 O T; R+ A }& J
6 Y, k% c8 t0 w: U/ g
解压缩,之后会看到dnw_linux文件夹,进入该文件夹% m+ F$ t3 X0 b* M' U
j! y9 Y' M: D% o- ? $ cd dnw_linux$ g6 [& U5 D, {# o) s
+ y2 O+ S3 A) j$ V: S
$ ls( n: t( X( Z0 q; @8 k! ]9 D
c% u7 z: B* s+ ~
$ /dnw /secbulk0 Z, u* g ^, Q7 p4 x2 v
- M+ F* q b1 b P# G7 D' }
/ s! T" C- p8 j' ~3 w 2.1 首先修改、编译和安装驱动
: L+ g2 Z+ i* v# ~) v- O" L5 p4 x
进入secbulk文件夹,输入编译命令,编译成模块。(我自己修改了Makefile,因此大家只需make就可编译,make clean 就可清除编译。修改后的Makefile如下:
" t) c$ q; @$ Z6 j4 |9 [" L
( k6 b& H9 m* G @4 j3 H2 bobj-m := secbulk.o
5 H" _8 R% P& B0 OKDIR := /lib/modules/`uname -r`/build8 U& q6 V. i7 ?' o
PWD := $(shell pwd)
9 g7 ?0 l1 j' j$ ~3 d( ~
+ R& e% B! \" w3 Q% m. _+ ]default:
, E& T9 ~( S5 n4 Y6 s+ k8 L $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules5 h* t# ~. [2 Q, y5 u2 f) t
clean:
8 q; J: B% @( ]% _ $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) clean% o. l+ `5 @1 }6 [
rm -RF *.order *.symvers7 K1 m1 e" @( ]& @; U" H
在修改secbulk.c中代码,将0x5432改为0x04e8(不同的flash要在那个表单中加入一些设备相关的信息类似ID号,在程序加载的时候自动读取芯片内部ID和这个相比较,没有注册的设备是不会被系统支持的,可以通过lsusb获得idProduct和idVendor,需要在插上板子,并准备下载时此时设备连上时lsusb,0x04e8:0x1234),代码如下:
/ Y9 u3 U; | r1 B/ n5 G2 ]6 L4 }* P H% ?$ Q- n" W
static struct usb_device_id secbulk_table[]= {
: g; h% b0 Y I% b \ { USB_DEVICE(0x04e8, 0x1234)},
# I5 `% Z; C. q { }
: e* @4 [9 g6 D# H4 q6 s};+ D- y/ i1 x/ F( ?: |8 o
7 h" j2 e, U9 M( `' x: ]; ` 至此,代码修改完毕!
* n9 p% c) R- e
{) c: T& P- b' I! E $ make/ A ]0 Q! {0 m$ I* y: F, w
0 [2 w/ @/ M' }. l# J H/ x) |2 m
之后在文件夹中会有secbulk.ko模块文件,如下图所示:
* b4 k3 k- @9 X3 Y9 o7 T
r5 w4 Z3 r% J# J3 l
! X- I4 l% J0 L7 f1 @
1 S6 f/ K4 C7 Y8 b( C( T( x. r
加载该模块到内核(注意:需要root权限)
; T V I) l X/ A& Z" y- P+ Z3 a; a' h' n% [
$ sudo insmod secbulk.ko- Q. s% ^! s, P* e) I
+ T* H- j% J7 A4 m. E. ]/ i% b. {. c" f* J
" F4 V* U8 s+ _) i6 b: y
. S8 d% [7 H1 }/ H2 q* t' g1 N& i/ Z2 L* f+ c
* @% @+ C/ \8 x1 [0 t& |- R5 N* u+ `
|
|