|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
' Q, B, q6 l$ i8 C" S/ |一直在Windows下开发,某些bug总是使我不能全心全意的信任Windows,从开发嵌入式开始,一直就想把开发环境转移到Linux环境下,特别是下载程序的时候,不过确实有Linux的开发环境,就拿下载程序来说,Linux下的minicom和dnw真的是很好用,同时也可以学习源代码。下面教你如何下载、安装、使用dnw。
. R* [7 p; G/ G* p- r- n7 O7 @* }2 @$ f7 H9 _8 x* D4 W
1. dnw由两部分构成:USB驱动和下载工具,USB驱动便是secbulk文件夹,下载工具是DNW文件夹
$ }- o+ t! R- b3 `- d4 T! m; E- O5 S, {8 b: c6 G5 e8 ]
2. 安装dnw
) {* X! x$ e8 C" ?* z9 M
/ M) x# ~; x! u% a, v/ D1 c2 } 解压缩,之后会看到dnw_linux文件夹,进入该文件夹
& }7 \& R( W% |% V% u( e% l0 a, ^7 o6 r
$ cd dnw_linux
9 A0 t0 z/ l3 [5 g: {- `. g# ^. ?
/ l0 e; e% G7 {" b5 J $ ls
" P5 B( d. `9 }6 ]& t* r% G+ Q; A9 w: O0 U# a$ g
$ /dnw /secbulk k9 a; }2 n, N2 I; D y) h& [3 X/ a4 |
+ p, S/ N& b# J0 l/ _" ]! o: b8 d; s# i- A$ N
2.1 首先修改、编译和安装驱动# j4 F- t1 d( h; k7 z n# \, g- d
) L0 o" z. Y$ j! z3 O9 h, r( e
进入secbulk文件夹,输入编译命令,编译成模块。(我自己修改了Makefile,因此大家只需make就可编译,make clean 就可清除编译。修改后的Makefile如下:1 n* L9 t* B2 O+ i
1 D! R' O1 }' ?; \# yobj-m := secbulk.o
6 [+ M" S3 D& h. O2 n( EKDIR := /lib/modules/`uname -r`/build
* Z( U' p: N5 V! p' a( t6 oPWD := $(shell pwd)6 F' w8 ^! O! K3 A
0 y0 J8 e# t* _& mdefault:8 z! s; m( X: W. a
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules Y, O t8 X: w2 [" U' q/ ]6 M1 v
clean:
6 D+ W; C- ^& |4 N- j" f $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) clean
* ]( N1 O/ y n3 |) }0 d rm -RF *.order *.symvers# _# y# A$ M/ O8 H' t( w
在修改secbulk.c中代码,将0x5432改为0x04e8(不同的flash要在那个表单中加入一些设备相关的信息类似ID号,在程序加载的时候自动读取芯片内部ID和这个相比较,没有注册的设备是不会被系统支持的,可以通过lsusb获得idProduct和idVendor,需要在插上板子,并准备下载时此时设备连上时lsusb,0x04e8:0x1234),代码如下:+ S, M4 y2 f# _! b! W" [5 n$ I1 Q! {
b+ W* f/ V* a
static struct usb_device_id secbulk_table[]= {
9 O- ]& J# d$ j+ \* g { USB_DEVICE(0x04e8, 0x1234)},1 u: J5 I+ y/ o& ~- _
{ }- G9 N4 y5 z: E; r. B
};
7 q& R% A! W; v
3 s2 D, y) d' t5 o2 |2 W 至此,代码修改完毕!
8 L5 [6 e, o7 l" P' [9 |2 V+ n; e. _" x
$ make
& k/ A' y1 i0 F. t! ^' [( D' T, }3 A/ z; k5 a v& l9 e; J; X
之后在文件夹中会有secbulk.ko模块文件,如下图所示:% |! W/ p8 b4 w7 G+ u5 Z
9 Q/ k% Q. a' [5 u l) p
Q0 N P5 Y- Q7 D& S" X. S
6 |* V; w q5 c; w9 }7 j# e- Q
加载该模块到内核(注意:需要root权限)
. O* y* |# @$ @, [; y" P
+ c) I$ q3 D( t7 b8 h3 s: B! V $ sudo insmod secbulk.ko5 H/ ?" o! v" ^: f J
& i9 O- j! N L; I' ^" b
; }& [: B5 A ^- g& N7 G: b$ [; C9 U L' U. }% X
' g2 I' x3 _4 }. U& \6 Z8 G X. e8 M: h2 }8 ?
* ?0 Y& X" u4 T* J |
|